1.安裝jdk1.5以上,我裝的是:jdk-6u27-windows-i586.exe
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2.安裝eclipse3.4以上版本,我裝的是:eclipse-jee-indigo-sr1-win32.zip
http://www.eclipse.org/
3.安裝最新android sdk:android-sdk_r13-windows.zip
http://dl.google.com/android/android-sdk_r13-windows.zip
安裝方法:
解壓後運作sdk manager.exe,選擇最新的tools、platfrom-tools、以及開發平台
sdk platfrom android 2.3.3, api 10, revision 2 (手機版)
sdk platfrom android 3.2, api 13, revision 1 (pad版)
4.安裝android adt:
官方安裝說明:http://developer.android.com/sdk/eclipse-adt.html
打開eclipse,選擇菜單:help->install new software。
彈出“available software”對話框,點選“add...”按鈕。
彈出“add repository”對話框。
name中輸入:adt
location中輸入:https://dl-ssl.google.com/android/eclipse/ 或者 http://dl-ssl.google.com/android/eclipse/
選中developer tools複選框,next,next,finish。安全警告時選ok。
配置說明:
eclipse重新開機後,選擇window -> preferences,選擇android。在sdk location中輸入你的android sdk所在的目錄,然後apply。
選擇eclipse -> window -> android sdk and avd manager,選擇 virtual devices,按new 按鈕建立虛拟裝置。sd卡設定預設100mb即可。
以上4步,可參考《android sdk 2.3與eclipse最新版開發環境搭建.docx》
----------------------------------------------------------------------------------------------------------------------------
5.安裝最新android ndk:android-ndk-r6b-windows.zip
http://dl.google.com/android/ndk/android-ndk-r6b-windows.zip
6.安裝最新cygwin 1.7.9-1
http://cygwin.com/setup.exe
安裝方法見《cygwin下載下傳安裝.docx》
7.配置環境變量:
新增系統變量:
java_home = c:\program files\java\jdk1.6.0_27
classpath = %java_home%\lib\tools.jar;%java_home%\lib\dt.jar;./
android-sdk = c:\program files\android\android-sdk
在path系統變量後添加:
%java_home%\bin;e:\tools\eclipse-jee-indigo-sr1-win32\eclipse;%android-sdk%\tools;c:\cygwin\bin
8.官方開發流程文檔:
android-ndk-r6b\docs
9.參考資料:
《ndk 開發指南---android ndk概覽.docx》
《android sdk 2.3與eclipse最新版開發環境搭建.docx》
《crystax ndk完全支援c++的解決方案.docx》
《cygwin下載下傳安裝.docx》
10.注意事項:
(1)源碼使用eclipse建立工程,cygwin編譯,eclipse再build和run。官方的android-ndk-r6b-windows.zip不是完整支援c++,最好替換使用android-ndk-r6-crystax-2-windows.zip,見《crystax ndk完全支援c++的解決方案.docx》
(2)開發前先參考官方開發範例:android-ndk-r6b\samples
(3)目前我已測試通過的開發模式:java以jni方式調用.so動态庫,而該so動态庫由c/c++源碼和.a靜态庫編譯而成。
(3)c可以調用java類的靜态/非靜态函數以及成員變量,該java類必須為單純的public class,不能是activity之類的派生類。
(4)java調用.so的native方法,最好是以純c實作。
(5)源碼工程的jni目錄下,必須要有android.mk。可選加入application.mk。見android-ndk-r6b\docs
(6)網絡通訊、檔案寫入等功能需要打開androidmanifest.xml以界面方式設定權限。
(7).so頭檔案生成:使用eclipse建立工程,定義好class和native方法,然後build,然後在windows指令行下進入它的bin/classes,運作javah -jni package名.類名。 例如我的就是javah -jni com.tvos.screen2tvinterface。
(8)有了頭檔案再來編寫.c代碼。
11.編譯環境:
使用makefile太複雜,是以我在192.168.18.211上建立了bjam編譯環境,用來編譯靜态庫。
我的測試範例:callback.rar、screen2tv.rar、screen2tv測試版.rar、ndk列印log例子.rar
可用eclipse導入。