寫教學的最大目的是教會未來的自己

android.

在Eclipse透過JNI 跑C/C++ for android-基礎安裝篇

首先,這是一個很複雜的問題…..因為 我搞了好久才搞定

這一篇應該算是經驗談,所以如有錯誤麻煩告知

 

參考資料:

http://ibuzzlog.blogspot.tw/2012/07/android-jni_20.html

http://zhoujianghai.iteye.com/blog/897212

http://j796160836.pixnet.net/blog/post/31583827-%5Bandroid%5D-安裝ndk與使用jni呼叫系統底層native的c-

 

環境準備

一開始你要先有eclipse+ android SDK

這是android 程式開發的基礎環境,相信大部分的人都是用這個環境來寫作

我目前是使用eclipse JUNO 中文化版本 教學也以中文化版本為主,英文版 可以看上面參考資料

 

所需安裝軟體

  1. androoid NDK  這是要讓android 能透過JNI 來執行C語言時所必需的套件
  2. eclipse CDT    這是讓eclipse 有C/C++ 的開發環境
  3. eclipse NDK   這是把NDK 引入eclipse 的套件
  4. cygwin            這是C/C++的compiler

 

其中最難搞 的是第四項,其他的很簡單….

安裝androoid NDK

  1. http://developer.android.com/tools/sdk/ndk/index.html 下載最新版本
  2. 解壓縮到硬碟,可以放在和android SDK 相同資料夾下方便管理
  3. 搞定

 

安裝eclipse CDT

  1. 在eclipse 下開啟 說明->Install New Software
  2. 在work with 中搜尋http://download.eclipse.org/tools/cdt/releases/indigo,如下徒選想CDT相關的安裝,應該是只要第一個就好,不過我連第二個也順便了 沒差
    2013-05-26_130016
  3. 接下來就是和android ADT 的安裝程序相同,就一路 下一部,同意 OK等等…我就不截圖了,因為我都安裝過了….
  4. 結束後eclipse 會要你重新啟動軟體,選YES

 

Continue reading

Post to Twitter Post to Plurk Post to Facebook Send Gmail

如何控制閃光燈的開啟與關閉

最近繼續研究android 的影像處理

繼續想辦法偷吃步XD

喔 不 今天不是樣講這個

今天要說的是 我研究出如何讓使用者自行控制閃光燈

但是因為 部分程式 是別人寫的…我無法說明原因(無法完全理解)

 

首先,簡單來說就是 處理 案件觸發,我把它放在手機上的 search 鍵(KeyEvent.KEYCODE_SEARCH:)

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch(keyCode)
        {
        case KeyEvent.KEYCODE_DPAD_CENTER: // DPAD_CENTER
            mPreview.mCamera.autoFocus(null);
            break;
            
        case KeyEvent.KEYCODE_MENU: // MENU
            mDrawOnTop.mDrawEdges = !mDrawOnTop.mDrawEdges;
            break;
        case KeyEvent.KEYCODE_SEARCH:
            mPreview.changeTheFlash();
            break;
        }
        
            
        return super.onKeyDown(keyCode, event);
    }

 

再來就是 開啟予關閉,這部分是寫在 相機這個 class 底下,這部分大部分的code 是我同學寫的,我只是拿來增加功能

public void changeTheFlash(){
        Camera.Parameters parameters=mCamera.getParameters();
        if(flashMod==true)
        {
            turnOfTheFlash();
            flashMod=false;
        }
        else
        {
            turnOnTheFlash();
            flashMod=true;
        }
    }
    
    public void turnOnTheFlash(){//開閃光燈
        Camera.Parameters parameters=mCamera.getParameters();
        parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
        mCamera.setParameters(parameters);
    }
    public void turnOfTheFlash(){//關閃光燈
        Camera.Parameters parameters=mCamera.getParameters();
        parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
        mCamera.setParameters(parameters);
    }

詳細請參閱http://developer.android.com/index.html

 

不知如何說明,自己研究吧

 

Post to Twitter Post to Plurk Post to Facebook Send Gmail

我無能阿~~~所有code 重新看一遍

今天 …應該是昨天了…我去學校meeting

給教授檢查我的成果

我最大的問題在於速度不夠快,托累了結果….

當然有些問題在於小bug 導致斑馬線擷取不夠完美

 

因此教授花了半小時的時間 針對我的內容

 

剛好下一場meeting 是研究生的

教授找來了 一個博士生,因為我用的演算法主要來自於他的碩士國科會計畫

所以教授就要我問他…

他教了我許多 debug 的方法

另外他跟我說,他用C 在PSP上跑比我還多的功能….速度是我的30倍!!!

我無能阿~~~~CPU比人強~~速度比別人慢~~~

會去從看code,依照建議繼續簡化

Post to Twitter Post to Plurk Post to Facebook Send Gmail

Copyright © 2024. All Rights Reserved.

歡迎光臨
初音