導航:首頁 > 操作系統 > androidndkr8b

androidndkr8b

發布時間:2022-06-29 01:47:10

android ndk運行問題,大神速進!!!

開發android我覺得還是SDK+eclipse好用,而且搭建平台也簡單,易學,建議樓主查查,使用看看~~~

② android ndk r8b和r9c有啥區別

1、增加C++11標准
2、增加opengl es 3.0
3、增加了語音文字轉換
4、解決 r8 兩次編譯的問題
等一系列的功能,當然上面的幾個是主要的,
當然現在最新的版本是ndk r10c,
如果要更新的話,建議直接更新到 r10c,
希望對你有用,我是ndk吧吧主,有問題可以ndk吧留言,謝謝!

③ 如何在Vitamio中使用自己編譯的FFmpeg

環境要求
Vitamio 3.0是使用Android NDK r8b版本編譯生成的,所以建議也使用此版本的NDK編譯您改寫過的FFmpeg,根據開發者的反饋,使用其它版本的NDK可能導致很多問題甚至崩潰。
編譯生成FFmpeg
首先,從我們的GitHub網址:http://github.com/yixia/FFmpeg-Android 下載一份FFmpeg-Android庫的拷貝,根據自己的需求對 FFmpeg-Android.sh 進行適當修改。
最常見的場景是編譯FFmpeg中你的程序需要的某幾個特定模塊,其它大部分不需要動。這種情況下,只需要在shell腳本下修改 FFMPEG_FLAGS ,所有可用參數都在FFmpeg的配置腳本里有詳細說明,可通過 configure --help 查閱。
個別情況下,如果需要為FFmpeg打補丁,那可能會麻煩些。我假定你自己已經知道了要怎麼做。簡言之,你只要懂FFmpeg-Android.sh或者編寫自己的編譯/生成腳本即可。
最後,在bash中運行FFmpeg-Android.sh腳本,既然是bash腳本,也許可能在zsh中運行。
打包libarm.so
在VitamioBundle中找到res/raw/libarm.so這個文件:

=> file res/raw/libarm.so
res/raw/libarm.so: 7-zip archive data, version 0.3

如你所見,它是個7-zip壓縮文件,因此可以直接將其解壓到隨便哪裡後,用你自己在前一步生成的libffmpeg.so替換其中原來的每個libffmpeg.so。

60 <=> armv6
61 <=> vfp
70 <=> armv7
71 <=> neon

最後,將替換後的數據照原樣重新打包成libarm.so即可。

④ 新手,cocos2dx移植到android平台不知道怎麼導入sqlite3庫

創建windows平台項目 一、 搭建windows開發環境 官網上顯示cocos2d-x支持win7、winxp、vista系統但我只在win7上用過以下說明均是在win7系統上的編譯器使用vs2010。 1、 安裝vs2010 2、 安裝Visual Assist X可選 3、 執行build-win32.bat編譯cocos2d-x 4、 運行cocos2d-x根目錄下的install-templates-msvc.bat將cocos2d-x模板加入vs模板庫。 5、將.\Debug.win32目錄下的所有dll文件拷貝至Windows\system32\ (iconv.dll libcocos2d.dll libcocosDenshion.dll libcuri.dll libEGL.dll libgles_cm.dll libxml.dll pthreadVCE2.dll zlib1.dll )6、 雙擊cocos2d-win32.vc2010.sln進入vs編譯環境 二、 新建win32項目 1、在「解決方案」上單擊右鍵選擇「添加」-〉「新建項目」。 2、選擇「左側Cocos2d-x模板」在右側列表中選擇「Cocos2d-win32 Application」輸入項目名稱「Cocos2dDemo」點「確定」。3、在彈出的對話框中點擊「下一步」。 4、如果需要使用Box2D引擎則選中否則不要選。點擊「finish」創建成功。 三、 編譯運行 1、右鍵Cocos2dDemo項目選擇「生成」進行編譯。 2、右鍵Cocos2dDemo項目選擇「設為啟動項目」。然後F5或者點擊菜單欄的運行鍵 運行。四、 創建新的解決方案 新建項目有兩種方式一是直接在cocos2d-x解決方案中添加新項目上面已經介紹過了。當你剛開始接觸cocos2d-x還在嘗試寫demo時用這種方式可以快捷的創建demo而且方便查看例子中的代碼。另一種方式是創建一個新的解決方案方法如下 1、「文件」-〉「新建」-〉「項目」 2、進入新建項目的窗口選擇「左側Cocos2d-x模板」在右側列表中選擇「Cocos2d-win32 Application」輸入項目名稱「Cocos2dDemo」點「確定」。然後執行「下一步」。 3、使用Box2D引擎則選中否則不要選。點擊「finish」創建成功。 4、單擊左下角的屬性標簽或者選擇「視圖」-〉「屬性管理器」打開屬性管理器5、在屬性管理器中雙擊「Microsoft.Cpp.Win32.user」彈出屬性頁在裡面設置VC++目錄即可。這樣該設置對所有VC項目都有效見下圖。 6、在「包含目錄」中, 加入下列項目 (D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\platform\third_party\win32) 7、在「庫目錄」中, 加入下列項目(D:\adroid\cocos2d-2.0x-2.0.3\Debug.win32)(發布時用release目錄下的!!) 8、上面的第4、5、6、7條也可以通過如下方法解決: 定位到%USERPROFILE%\appdata\local\microsoft\msbuild\v4.0可以通過運行或直接在windows資源管理器的地址欄中輸入使用其他文本編輯工具修改Microsoft.Cpp.Win32.user.props或Microsoft.Cpp.X64.user.props文件中的相關欄位。以下是我的文件內容 <IncludePath>D:\android\cocos2d-2.0-x-2.0.3;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\include;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\platform;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\platform\win32;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\platform\third_party\win32\OGLES;D:\android\cocos2d-2.0-x-2.0.3\external\Box2D;D:\android\cocos2d-2.0-x-2.0.3\CocosDenshion\include;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\platform\third_party\win32;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\kazmath\include;$(IncludePath)</IncludePath><LibraryPath>D:\android\cocos2d-2.0-x-2.0.3\Debug.win32;$(LibraryPath)</LibraryPath> 第4至8條的作用是加入解決方案所依賴的頭文件和庫文件以保證項目的正常編譯運行。 五、 如何刪除vs里的cocos2d-x模板 1、 打開如下目錄 (Example as default install) 1VS2008: C:\Program Files\Microsoft Visual Studio 9.0\VC\vcprojects\ 2VC2008Express: C:\Program Files\Microsoft Visual Studio 9.0\VC\Express\VCProjects 3VS2010: C:\Program Files\Microsoft Visual Studio 10.0\VC\vcprojects\ 4VC2010Express: C:\Program Files\Microsoft Visual Studio 10.0\VC\Express\VCProjects 2、 刪除此目錄下的 Cocos2d-x文件夾 3、 刪除前綴為 CCAppWiz (0.8.0 or later) 或 CCXAppWiz (0.7.2 or earlier)的文件
將項目由win32移植到android平台 一、 快速搭建android開發環境 1、將伺服器上的eclipse、java、android sdk、android ndk、cygwin、cocos2d-x文件夾拷貝到本地請注意保存的路徑為英文、不包含空格、且不要過長。 2、 運行eclipse添加android-sdk的路徑。(preferences->Android:SDK Location) 3、 添加ADT(Help->Install New Software:Work with) 4、添加java環境變數。 新建變數JAVA_HOME變數值為java目錄的絕對路徑。 在path中添加 %JAVA_HOME%\D:\android\Java\jdk1.6.0_20\bin; %JAVA_HOME%\D:\android\Java\jdk1.6.0_20\jre\bin; D:\android\Java\jre6\bin; 5、運行一次Cygwin.bat 6、修改\cygwin\home\用戶名\.bash_profile文件添加NDK_ROOT=/cygdrive/d/android/android-ndk-r8b export NDK_ROOT 7、 修改\cocos2d-2.0-x-2.0.3\create-android-project.bat中的如下路徑 set _CYGBIN=e:\cygwin\bin set _ANDROIDTOOLS=e:\android\android-sdk\tools set _NDKROOT=e:\android\android-ndk-r8 二、 新建android項目 1、 運行create-android-project.bat創建新的android項目例如項目名稱為Cocos2dDemo。 2、 將win32下完成的.cpp和.h文件拷貝到\Cocos2dDemo\Classes 3、將win32下使用的資源拷貝到\Cocos2dDemo\proj.android\assets 4、將cpp文件的路徑、使用的頭文件的目錄加入到Android.mk文件。 5、打開Cygwincd 到/Cocos2dDemo/proj.android目錄下 6、執行./build_native.sh進行編譯 7、在eclipse中編譯打包。 三、 補充 1、2.0以上版本的引擎基本無法在android模擬器上運行建議在xcode和vs上調試好直接在真機上運行。 2、2.0以上版本的引擎要求android的開發和運行環境都要2.2以上的sdk。
將項目由win32移植到ios 一、 創建ios項目 1、 安裝XCode 2、執行install-templates-msvc.bat將模板添加到XCode 3、打開xcode選擇Create a new Xcode project選擇cocos2d-x模版 4、點擊next填入項目名稱Man 5、找到Man的主項目在這里新建一個iOS文件夾。點擊create創建完成 6、刪除Resource和Classes下的多餘文件Helloworld的代碼和資源 7、右鍵點擊Resource 選擇Add Files to "Man"... 7、將Man主項目文件夾下的Resource文件夾中的資源添加到當前工程。注意選擇create folder references for any added folders只是添加一個引用 8、同樣的方法添加源文件和頭文件到Classes下 9、點擊Run編譯運行 二、 補充 1、Mac 平台的OS X需要10.6及以上版本 2、IOS平台需要4.0及以上版本 3、IOS真機支持iPad 1、iPad 2、iPad 3、 iPhone 3GS、iPhone 4、iPhone 4S、iPhone 5、iphone6、iPod Touch 3 and iPod Touch 4 不支持iPhone and iPhone 3G。

⑤ 下面截圖中的java函數表示的是什麼意思,做何種操作

android串口通信以及串口協議解析
一,android串口通信
串口通信採用一個第三方開源項目,實現串口數據收發。
1. 使用了http://code.google.com/p/android-serialport-api/的項目的serialport api和jni;
2. 支持4串口同時收發,有定時自動發送功能,收發模式可選Txt或Hex模式;
3. n,8,1,沒得選;
4. 為減輕界面卡頓的情況,接收區的刷新採用單獨的線程進行定時刷新;
5. 發送區的數據以及一些設置項,在程序關閉時會自動保存,打開時自動載入;
6. jni使用最新的NDKr8b重新編譯了一下

簡單編寫步驟:
1.新建一個項目,自己起個名字
2.直接復制serialport api和jni文件夾到新建的工程,如果不想自己編譯jni,就連libs文件夾也一起復制
3.去android官方網站下載NDK,解壓,在CMD中轉到jni目錄,並執行 絕對路徑\ndk-build
4.自己再封裝一個工具類或直接使用SerialPort類都行,舉個直接使用的例:
直接剽竊原項目的SerialPortActivity.java,並稍微改一下,重點改這里
mSerialPort = mApplication.getSerialPort();
這里可以改成
new SerialPort(new File("/dev/s3c2410_serial0"), 9600, 0);//COM0,波特率9600
5. SerialPortFinder的使用就沒什麼好講的了,實例化後用.getAllDevicesPath()就能獲取到所有設備了。
其它如數據轉換等請參考源碼

源碼可以參考谷歌android-serialport-api例子
http://code.google.com/p/android-serialport-api/source/checkout
svn checkout http://android-serialport-api.googlecode.com/svn/trunk

二,串口通信協議解析
1.通信基本格式
欄位 描述 長度(位元組)
起始符 0F,十六進制碼 1
信息類型 一個位元組,十六進制碼(0F,F0,FF等保留碼不用)1
信息長度 是信息內容的長度,ASCII碼表示(0~9,A~F,最大長度為256)(例如長為11個,十六進制是0B,則兩個位元組就寫0x30 0x42)。
註:因為最大長度256不能滿足有些指令的要求,所以對長度做了擴展,下面是擴展說明:
如果第一個位元組的最高位為1,則表示擴展長度。在擴展長度狀態下,其他15個位元組通過16進制大端模式來保存長度。比如:0x80 0x12表示長度為0x001 2,0x81 0x12表示長度為0x0112。2
信息內容 一組十六進制碼 N
校驗 一個位元組,十六進制碼,是自信息類型起至對象號止所有碼的異或。1
結束符 F0,一個位元組,十六進制碼 (為了保證可靠性,車機下發的結束符為F0 FF)1

2.協議解析

[java] view plain
/**
* 讀取終端設備數據
* @author Administrator
*/
private class ReadThread extends Thread {

@Override
public void run() {
super.run();

// 定義一個包的最大長度
int maxLength = 2048;
byte[] buffer = new byte[maxLength];
// 每次收到實際長度
int available = 0;
// 當前已經收到包的總長度
int currentLength = 0;
// 協議頭長度4個位元組(開始符1,類型1,長度2)
int headerLength = 4;

while (!isInterrupted()) {
try {
available = mInputStream.available();
if (available > 0) {
// 防止超出數組最大長度導致溢出
if (available > maxLength - currentLength) {
available = maxLength - currentLength;
}
mInputStream.read(buffer, currentLength, available);
currentLength += available;
}

}
catch (Exception e) {
e.printStackTrace();
}

int cursor = 0;
// 如果當前收到包大於頭的長度,則解析當前包
while (currentLength >= headerLength) {
// 取到頭部第一個位元組
if (buffer[cursor] != 0x0F) {
--currentLength;
++cursor;
continue;
}

int contentLenght = parseLen(buffer, cursor, headerLength);
// 如果內容包的長度大於最大內容長度或者小於等於0,則說明這個包有問題,丟棄
if (contentLenght <= 0 || contentLenght > maxLength - 5) {
currentLength = 0;
break;
}
// 如果當前獲取到長度小於整個包的長度,則跳出循環等待繼續接收數據
int factPackLen = contentLenght + 5;
if (currentLength < contentLenght + 5) {
break;
}

// 一個完整包即產生
// proceOnePacket(buffer,i,factPackLen);
onDataReceived(buffer, cursor, factPackLen);
currentLength -= factPackLen;
cursor += factPackLen;
}
// 殘留位元組移到緩沖區首
if (currentLength > 0 && cursor > 0) {
System.array(buffer, cursor, buffer, 0, currentLength);
}
}
}
}

/**
* 獲取協議內容長度
* @param header
* @return
*/
public int parseLen(byte buffer[], int index, int headerLength) {

// if (buffer.length - index < headerLength) { return 0; }
byte a = buffer[index + 2];
byte b = buffer[index + 3];
int rlt = 0;
if (((a >> 7) & 0x1) == 0x1) {
rlt = (((a & 0x7f) << 8) | b);
}
else {
char[] tmp = new char[2];
tmp[0] = (char) a;
tmp[1] = (char) b;
String s = new String(tmp, 0, 2);
rlt = Integer.parseInt(s, 16);
}

return rlt;
}

protected void onDataReceived(final byte[] buffer, final int index, final int packlen) {
System.out.println("收到信息");
byte[] buf = new byte[packlen];
System.array(buffer, index, buf, 0, packlen);
ProtocolAnalyze.getInstance(myHandler).analyze(buf);
}

⑥ android調用opencv,環境cdt+ndk-r8b+cygwin。

參考答案: 我們大狼哥要是無聊啊,鼻涕泡都能拿來玩會!

⑦ android配置cocos2d-x環境怎麼安裝CDT

創建Android項目, 項目名稱"CCTest". Youngs-MacBook-Air:~ young40$ cd /opt/cocos2d-2.0-x-2.0.3/ Youngs-MacBook-Air:cocos2d-2.0-x-2.0.3 young40$ ./create-android-project.sh use global definition of NDK_ROOT: /opt/android-ndk-r8b use global definition of ANDROID_SDK_ROOT: /opt/android-sdk-macosx Input package path. For example: org.cocos2dx.example com.young40 Now cocos2d-x supports Android 2.2 or upper version Available Android targets: ---------- id: 1 or "android-3" Name: Android 1.5 Type: Platform API level: 3 Revision: 4 Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P ABIs : armeabi ---------- id: 2 or "android-10" Name: Android 2.3.3 Type: Platform API level: 10 Revision: 2 Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854 ABIs : armeabi ---------- id: 3 or "android-15" Name: Android 4.0.3 Type: Platform API level: 15 Revision: 3 Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800 ABIs : armeabi-v7a, x86 ---------- id: 4 or "android-16" Name: Android 4.1 Type: Platform API level: 16 Revision: 2 Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in ABIs : armeabi-v7a input target id: 2 input your project name: CCTest Created project directory: /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android Created directory /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/src/com/young40 Added file /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/src/com/young40/CCTest.java Created directory /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/res Created directory /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/bin Created directory /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/libs Created directory /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/res/values Added file /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/res/values/strings.xml Created directory /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/res/layout Added file /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/res/layout/main.xml Added file /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/AndroidManifest.xml Added file /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/build.xml Added file /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/proguard-project.txt Resolved location of library project to: /opt/cocos2d-2.0-x-2.0.3/cocos2dx/platform/android/java Updated project.properties Updated local.properties Updated file /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/proguard-project.txt Youngs-MacBook-Air:cocos2d-2.0-x-2.0.3 young40$ 6.編譯默認的C++資源 Youngs-MacBook-Air:proj.android young40$ cd /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/ Youngs-MacBook-Air:proj.android young40$ ./build_native.sh NDK_ROOT = /opt/android-ndk-r8b COCOS2DX_ROOT = /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/../.. APP_ROOT = /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/.. APP_ANDROID_ROOT = /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android Using prebuilt externals make: Entering directory `/opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android' Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver Gdbsetup : libs/armeabi/gdb.setup Compile++ thumb : game_shared <= main.cpp In file included from /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/http://www.cnblogs.com/cocos2dx/platform/android/jni/JniHelper.h:27:0, from jni/hellocpp/main.cpp:2: /opt/android-ndk-r8b/platforms/android-14/arch-arm/usr/include/jni.h:592:13: note: the mangling of 'va_list' has changed in GCC 4.4 Compile++ thumb : game_shared <= AppDelegate.cpp Compile++ thumb : game_shared <= HelloWorldScene.cpp Prebuilt : libgnustl_static.a <= /sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/ Compile++ thumb : cocos2dx_static <= CCConfiguration.cpp .....中間編譯輸出省略 Prebuilt : curl.a <= /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/http://www.cnblogs.com/cocos2dx/platform/third_party/android/prebuilt/libcurl/libs/armeabi/ StaticLibrary : libextension.a SharedLibrary : libgame.so Install : libgame.so => libs/armeabi/libgame.so make: Leaving directory `/opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android'7. 創建Eclipse項目, 並運行默認Demo 如圖, 選擇Android Project from Existing Code. 地址選擇為:/opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android (直接輸入可能會報錯, 請用滑鼠選擇目錄) 點擊下一步就將項目加入了Eclipse中.但是項目會報錯. The import org.cocos2dx.lib cannot be resolved CCTest.java /com.young40.CCTest/src/com/young40 line 26 Java Problem Cocos2dxActivity cannot be resolved to a type CCTest.java /com.young40.CCTest/src/com/young40 line 30 Java Problem Cocos2dxActivity cannot be resolved to a type CCTest.java /com.young40.CCTest/src/com/young40 line 33 Java Problem我的解決辦法是將: /opt/cocos2d-2.0-x-2.0.3/cocos2dx/platform/android/java作為一個項目添加進來, 即可解決報錯問題. 8.編譯運行 我嘗試在Android2.3.3虛擬機運行項目失敗. 沒有關系, 我用真機測試. adb 無線連上真機(cm10真好, 自帶無線調試) Youngs-MacBook-Air:proj.android young40$ /opt/android-sdk-macosx/platform-tools/adb connect 192.168.8.139:5555 connected to 192.168.8.139:5555OK, 運行成功, 如圖. FPS有點低哈, 我的ipad2, 都能全速60幀. 9.創建名稱為CCTest的Xcode項目. 創建後你可以運行測試下. 刪除項目下Classes目錄 然後將目錄/opt/cocos2d-2.0-x-2.0.3/CCTest/Classes添加到項目.請確保Destination是沒有被選中的.這樣代碼將是以引用的方式存在在項目中的. 修改Classes下HelloWorldScene.cpp, 並運行測試. CCLabelTTF* pLabel = CCLabelTTF::create("Hello Cocos2d-x!", "Thonburi", 34);成功.cocos2d-x 2.0.3的版本在ios6上有方向旋轉的問題, 應該為橫屏才對. 10.在Android中重新運行. 首先運行: /opt/cocos2d-2.0-x-2.0.3/CCTest/proj.android/build_native.sh 在Eclipse菜單中選擇Project=>Clean清理下項目, 然後Run下, 可以在手機看到更改也已經生效. 11. 覺得上一步繁瑣? 能不能點擊Run同時也編譯C++資源呢? 答案是可以的. 選中Eclipse左側CCTest項目, 右鍵點擊New=>Other, 在彈出對話框中選擇C/C++=>Convert to a C/C++Proejct(Adds C/C++ Nature) 在接下來一屏中選擇C++ Project以及 Project Type為Makefile project, Toolchains為Other 接下來Eclipse問是否切換到C++視圖, 選擇否. 如果不小心切換過去了, 再切換回java視圖即可. 打開項目屬性頁面, 設置自動編譯C++, 如圖: 注意修改Build command為, 另外需要注意項目名稱. bash ${workspace_loc:/com.young40.CCTest}/build_native.sh NDK_DEBUG=1 V=1 點擊Run,之後我這里報錯, 編譯提示說"please define NDK_ROOT", 需要在項目設置中添加環境變數.如圖 這個時候再點擊Run, 會看到Console窗口會有編譯的輸出, 編譯成功. 運行成功. 12.消除Eclipse中的錯誤提示. 如果打開項目jni目錄下hellocpp/main.cpp文件, 會看到大量的報錯. 我們需要講相關文件添加到項目中. 首先添加/opt/cocos2d-2.0-x-2.0.3/CCTest/Classes到項目中.如圖添加一個Link類型的文件夾. 用同樣方法將"/opt/cocos2d-2.0-x-2.0.3/cocos2dx"添加到項目中. 然後如圖添加引用. /opt/android-ndk-r8b/platforms/android-8/arch-arm/usr/include /opt/cocos2d-2.0-x-2.0.3/CocosDenshion/include 這里和子龍山人翻譯的老外的文章做法略有不同, 他那個方法還是要報很多錯, 可能是版本不同造成的. 我這個方法也不用忽略文件, 用什麼類直接滑鼠點擊可以看到相應聲明. 這樣初步的IOS&Android開發環境就集成好了.

⑧ MuPDF怎麼在windows環境下編譯

git submole update --init代碼獲取完成以後,需要在源代碼目錄生成一個generated目錄,裡面有一些.h文件,這一步非常關鍵,也是我在編譯過程中遇到的最大的障礙根據官方網站的說明,需要用 make generate 命令來生成這個目錄,這就需要安裝cygwin 編譯環境.可直接網上下載安裝,需要特別注意的是在安裝cygwin時必需選擇gcc和make相關的部分,否則無法執行 make命令,對新手來說,這一步非常重要,我就是在這里卡了很長時間,make總是不成功,提示說找不到命令,因為以前沒有相關經驗,所以卡了很長時間。gcc安裝也是非常重要,把 gcc 編譯c代碼和c++ 代碼的部分也都選上,否則即使有了make,也不能make成功。


執行make命令(執行make前,需要將cygwin路徑加入到環境變數):

make generate

make成功以後,在源代碼目錄下面會生成generated 文件夾,內容如下圖:


這一步成功完成後,編譯就成功了一半。下面進行NDK編譯,我用的NDK版本是R8B ,需要說明的是,經過我的摸索,並不是所有的版本的NDK都能編譯通過,如果使用最新的NDKR8D的話會有非常多的警告。在源代碼目錄下找到local.properties.sample,改名為local.properties 做如下修改:


sdk.dir=C:\Documents and Settings\Administrator\android-sdks\platforms\android-10

ndk.dir=C:\android-ndk-r8b

分別是android sdk 路徑和ndk 路徑。這時,先不要執行NDK編譯命令 ,在源代碼目錄的JNI文件夾下找到Application.mk文件,找到下面兩行:

# If the ndk is r8b then workaround bug by uncommenting the following line

#NDK_TOOLCHAIN_VERSION=4.4.3


意思是說如果使用ndk r8b編譯需要取消注釋NDK_TOOLCHAIN_VERSION=4.4.3 這一行,OK,照辦,取消注釋。這一步非常重要,我就是實現沒仔細看這行,導致最後編譯不通過。原因是不同版本的GCC,對命令的解釋有差異,導致錯誤,這里就不深究了。下面正式開始NDK編譯:

整個編譯工作大功告成。

⑨ 使用ndk開發程序需要寫什麼文件

NDK(Native Development Kit)「原生」也就是二進制
AndroidNDK是一套工具,允許Android應用開發者嵌入從C、C++源代碼文件編譯來的本地機器代碼到各自的應用軟體包中,並通過JNI進行訪問。Android從1.5開始支持NDK.

android常用的開發方式是java封裝的庫,而這些庫的底層實現是由C/C++實現,如媒體,圖形庫等
java調用這樣實現就需要用JNI(Java Native Interface)
平時用的也就是google給我們封裝的好的庫,即便是底層實現用的不是Java,但都有統一的Java介面
而NDK的作用是「我們自己寫本地代碼」(C/C++),自己用JNI封裝成Java介面
比如我們想做個計算,二這不是Java的強項,可以用C/C++來寫實現,返回一個運算結果就行了
NDKr5已經實現了不用寫一行Java代碼開發程序了,只不過還是用到了虛擬機,細節被封裝隱藏起來了而已
對於JNI和NDK很多Android開發初學者沒有搞明白這個問題
JNI是Java調用Native機制,是Java語言自己的特性全稱為 Java Native Interface,類似的還有微軟.Net Framework上的p/invoke,可以讓C#或Visual Basic.Net可以調用C/C++的API,所以說JNI和Android沒有關系,在PC上開發Java的應用,如果運行在Windows平台使用 JNI是是經常的,比如說讀寫Windows的注冊表。
NDK是Google公司推出的幫助Android開發者通過C/C++本地語言編寫應用的開發包,包含了C/C++的頭文件、庫文件、說明文檔和示例 代碼,我們可以理解為Windows Platform SDK一樣,是純C/C++編寫的,但是Android並不支持純C/C++編寫的應用,同時NDK提供的庫和函數功能很有限,僅僅處理些演算法效率敏感的 問題,所以Android123推薦初學者學好Java後再學習JNI。
NDK其實多了一個把.so和.apk打包的工具,這個是很重要的。
而JNI開發並沒有打包,只是把.so文件放到文件系統的特定位置。
如果是做應用開發,則需要NDK工具,不然你開發的應用程序怎麼給用戶用呢?難道幫他重新編譯文件系統?
其他至於實現,java調用本地C/C++函數,及其編寫方式,我覺得JNI和NDK沒有什麼區別。
還有一個我個人理解,NDK開發C/C++只能能使用NDK自帶的有限的頭文件,而使用JNI則可以使用文件系統中帶的頭文件,比如utils/Log.h
而後者的資源更多,當然NDK正在努力開發中,以便支持更豐富的介面。
2.開發環境搭建:
NDK開發需要安裝以下物體:
1.cygwin (需要1.7以上版本,下載地址:http://www.cygwin.com官方明確表示MSys or Cygwin 1.5 is notsupported)
在安裝時候,選擇make、gcc、g++、bash、

安裝好後啟動cygwin,運行:
看到如下所11示就ok了 (注意:GNU Make要 3.81以上版本)
3.NDK的使用
(android-ndk-r8b-windows),此文檔只針對r8b版進行說明, ndk可以到官方網http://developer.android.com上進行下載
Ndk下載下來隨意解壓到一個目錄即可(ndk的解壓後存放的路徑必須不能包括空格或中文,比如這種「D:\Program Files\Android-ndk-windows」在cygwin是不能識別成功的。)
如:D:\AndroidDevelop\NDK\android-ndk-r8b
配置NDK 在D:\AndroidDevelop\cygwin\home 目錄下找到.bash_profile打開文件加上:
NDK=/cygdrive/d/AndroidDevelop/NDK/android-ndk-r8b
export NDK
配好後重新打開cygwin
輸入:
cd $NDK
輸入: $NKD/ndk-build 驗證NDK是否可以使用?

在Cygwin下用nano或者vim編輯器編輯你的腳本。對於那些已經存在的腳本用dos2unix轉化一下。因為Windows下的換行是<LF><CR>,Linux下是<LF>,Mac下是<CR>。
先對你的腳本跑一下 dos2unix .bash_profile 就行了。
配置NDK可以參照 http://www.linuxidc.com/Linux/2012-07/65388.htm

⑩ 怎麼給ndk指定gcc版本

給ndk指定gcc版本,在Android.mk裡面修改下面內容:

CC=$(NDK_PATH)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc
CXX=$(NDK_PATH)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++
AS=$(NDK_PATH)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-as
LD=$(NDK_PATH)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ld
DEPCC=$(NDK_PATH)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc
AR=$(NDK_PATH)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ar
RANLIB=$(NDK_PATH)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ranlib

閱讀全文

與androidndkr8b相關的資料

熱點內容
oraclelinux安裝目錄 瀏覽:133
安卓系統可以安裝編譯器嗎 瀏覽:568
javajson實體類 瀏覽:690
板加密鋼筋是否取代原鋼筋 瀏覽:64
學習編程的思路 瀏覽:230
app易語言post怎麼學 瀏覽:963
地梁的箍筋加密區位置 瀏覽:300
二分法排序程序及編譯結果 瀏覽:677
日語命令形和禁止型 瀏覽:285
安裝軟體用管理員解壓 瀏覽:505
編譯原理代碼塊 瀏覽:400
小孩可以用壓縮面膜嗎 瀏覽:14
錐形倒角怎麼計演算法 瀏覽:880
java合並鏈表 瀏覽:507
pic單片機編譯器 瀏覽:805
麗水四軸加工中心編程 瀏覽:689
國產系統怎麼解壓 瀏覽:552
戰雙程序員 瀏覽:483
him觸摸編程軟體 瀏覽:931
植物大戰僵屍存檔怎麼轉移安卓 瀏覽:852