編輯:關於Android編程
由於Linux系統的權限限制和Android封裝架構限制,很多涉及底層設備、接口、驅動控制的應用開發,不得不使用到本文的NDK開發環境(基於Android源碼或內核源碼修改),開發語言使用C/C++,NDK開發更接近於Linux開發,需要更多關於Linux應用編程知識。本文就介紹一下NDK環境搭建及基礎編程思想。
本文演示環境:Windows 7 Ultimate+Cygwin+NDK r4。
基礎閱讀:
Windows下Android開發環境搭建和配置
Android開發入門之環境概念介紹
您可以下載NDK r4 for Windows或NDK r5 for Windows安裝包,下載地址:
地址:http://developer.android.com/sdk/ndk/index.html
下載後解壓縮到你的工作目錄,例如:E:\Android\develop,結果如下圖:
Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等內容。samples下面包含幾個實例開發演示項目,第一次接觸NDK開發,建議先從示例開始。下面先看一下編譯環境配置。
由於NDK開發大都涉及到C/C++在GCC環境下編譯、運行,所以在Windows環境下,需要模擬Linux模擬編譯環境,下載地址:
http://www.cygwin.com/<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPs/C1Ni688rHuPZzZXR1cC5leGXOxLz+o6zKudPDuf2zzMjnz8KjujwvcD4NCjxwPrXa0ruyvaO61MvQ0HNldHVws8zQ8qOstdrSu7K9zbzC1KOs1rG907Xju/dOZXh0vfjI68/C0ruyvaGjPC9wPg0KPHA+tdq2/rK9o7rRodTxsLLXsLe9yr2jrLXa0ru0zr/J0tSyydPDRGlyZWN0IENvbm5lY3Rpb27U2s/fz8LU2LCy17CjrMjn09DP1rPJtcTA68/fsPyjrL/J0tTRodTxwOvP37Cy17CjqEluc3RhbGwgZnJvbSBMb2NhbCBEaXJlY3RvcnmjqaGjPC9wPg0KPHA+PGltZyBhbHQ9"" src="/uploadfile/Collfiles/20150325/20150325083405140.jpg" title="\" />
第三步:選擇安裝目錄,比如C:\Cygwin,注意此目錄是指Cygwin最終的安裝目錄,不是下載文件暫存目錄。
第四步:設置本地包暫存路徑
暫存目錄默認是放到setup.exe的同級目錄下,下載後名字類似ftp%3a%2f%2fcygwin.mirrors.pair.com%2f這樣格式。
第五步:設置網絡連接方式
第六步:選炸ky"/kf/web/php/" target="_blank" class="keylink">PHPwtTY1b6147XY1rc8L3A+DQo8cD7G8LP1s6LK1Ly4uPa/tMTEuPbL2bbIv+y+zdPDxMS49rXY1rejqMjnufu40L71sru/7L7NtePIoc/7o6zU2bTOwLS5/aOpoaM8L3A+DQo8cD48aW1nIGFsdD0="" src="/uploadfile/Collfiles/20150325/20150325083414149.jpg" title="\" />
第七步:等待加載安裝項載入,選擇安裝項
我們編譯NDK,在默認設置下,只需選擇Devel(點擊列表中Devel,將後面的Default改為Install,圖中箭頭所示),其它均為默認狀態。
第八步:等待下載完成
下載完成時間決定於你選擇的安裝包數量及網絡連接速度,比如按照本文默認的選擇方式,可能需要4-5個小時,下載後壓縮包約750M,下載完成後會自動安裝到上文設置的安裝目錄。
提醒:第一次下載完成後,最好把下載的包目錄做個備份,下次安裝同樣的環境可以直接使用離線安裝方式(第二步中選擇本地安裝)。
安裝完成後,先運行Cygwin一次(Cygwin.bat),以便創建一些用戶環境文件,分別輸入:
make -v
和,
gcc -v
如果檢測成功,會有make和gcc相關版本信息打印出來,如下圖。
可以在cygwin中通過vim修改,也可以在windows安裝目錄中修改 home\<你的用戶名>\.bash_profile 文件中最後添加環境變量
NDK=/cygdrive/e/Andriod/develop/android-ndk-r4
export NDK
其中NDK=/cygdrive/<你的盤符>/ ,"NDK"這個名字隨便起,以後經常用不要太長。
重啟cygwin,輸入:
cd $NDK
可進入ndk對應目錄說明設置OK。
現在就可以編譯相關NDK工程了(一些用c/c++寫的程序),編譯方法如下:
1、在cygwin命令行下,進入android項目工作目錄:
cd $NDK
2、依次進入samples\hello-jni目錄,(完整路徑示例: E:\Andriod\develop\android-ndk-r4\samples\hello-jni)
3、運行
$NDK/ndk-build
注意:該命令$NDK和/ndk-build是連接到一起的,中間沒有空格,實際使用時是打入完整的$NDK/ndk-build,不要只打ndk-build。
4、正常編譯完成後會在你的項目libs/armeabi目錄下生成對應的 .so文件。
編譯完成後會得到*.so靜態目標庫後,就可以導入工程環境Eclipse Android項目中使用,注意,NDK編程並非一定要把這個目標庫導入Android項目使用,除了本步驟描述的使用方法之外,還有Android源碼直接修改、編譯,然後燒錄到測試機的開發方式,那樣可以實現應用程序默認安裝、權限開機提升等等更“徹底”的功能。綜合一下:
本步驟演示屬於NDK目標庫+Andriod APK樣式,此外還有Android源碼直接開發、直接編譯方式(確切一點已經淡化Android所謂的工程概念了,當然源碼開發目前似乎還無法直接在Windows下進行,好像必須使用Linux家族系統進行,天緣稍後文章會有所涉及)
使用方法如下(示例):
1、在Eclipse中新建一個工程HelloJni,HelloJni.java中的代碼可參考NDK對應 sample下的演示代碼(android-ndk-r4\samples\hello-jni\tests\src\com\example \HelloJni)調用方法。
2、將NDK編譯項目目錄下的jni和libs文件夾拷貝到新建工程目錄下
注意這兩個文件夾要和工程中的src和res文件在同一目錄下。然後進入Eclipse中刷新工程(會看到多出兩個文件夾)。
3、運行Eclipse項目,就可以在虛擬機上看到hello-jni.c函數中輸出字符串。
4、後續您可以試著修改庫源程序或項目JAVA程序來熟悉NDK整個開發過程。
雖然QQ的功能更多,但越來越多的用戶都習慣使用微信作為聊天和分享的工具。問題來了,在我們用微信給好友傳圖時總有最多9張的數量限制,如何才能破解這個限制呢?令
Android系統較為龐大,要搞清楚系統運行原理需要長期努力。系統啟動部分看了幾遍但沒有總結,今天簡單總結一下。 Android首先重點是啟動zygote進程,這個進程來
Android由於其代碼是放在dalvik虛擬機上的托管代碼,所以能夠很容易的將其反編譯為我們可以識別的代碼。之前我寫過一篇文章反編譯Android的apk包到smali
在OC中,我們可以通過Category 對已有的類進行擴展,這得益於OC的Runtime機制,讓類可以‘動態’的添加方法以及實現。但是,在Cate