androidmacndk
1. mac版androidstudio怎麼配置ndk
這個網址有詳細的過程:Windows32:android-ndk-r10d-windows-x86.exeWindows64:android-ndk-r10d-windows-x86_64.exeMacOSX32-bit:android-ndk-r10d-darwin-x86.binMacOSX64-bit:android-ndk-r10d-darwin-x86_64.binlinux32-bit(x86):android-ndk-r10d-linux-x86.binLinux64-bit(x86):android-ndk-r10d-linux-x86_64.bin都是可執行文件,下載後點擊即可解壓到當前文件夾;當然你可以使用命令行來進行跨文件夾解壓的。
2. 如何通過C的方式在android NDK下面查找本機的mac地址
boolGetMac(char*pBuffer)
{
structifreq*ifr;
structifconfifc;
ints,i;
intnumif;
//findnumberofinterfaces.
memset(&ifc,0,sizeof(ifc));
ifc.ifc_ifcu.ifcu_req=NULL;
ifc.ifc_len=0;
if((s=::socket(PF_INET,SOCK_STREAM,0))<0)
{
CCLog("SgProfile::GetMac111111");
returnfalse;
}
if(ioctl(s,SIOCGIFCONF,&ifc)<0)
{
CCLog("SgProfile::GetMac222222");
returnfalse;
}
if((ifr=(ifreq*)malloc(ifc.ifc_len))==NULL)
{
CCLog("SgProfile::GetMac333333");
returnfalse;
}
ifc.ifc_ifcu.ifcu_req=ifr;
if(ioctl(s,SIOCGIFCONF,&ifc)<0)
{
CCLog("SgProfile::!");
returnfalse;
}
numif=ifc.ifc_len/sizeof(structifreq);
for(i=0;i<numif;i++)
{
structifreq*r=&ifr[i];
structsockaddr_in*sin=(structsockaddr_in*)&r->ifr_addr;
if(!strcmp(r->ifr_name,"lo"))
continue;//skiploopbackinterface
//getMACaddress
if(ioctl(s,SIOCGIFHWADDR,r)<0)
{
CCLog("SgProfile::GetMac333333ioctl(SIOCGIFHWADDR)error!");
continue;
}
memcpy(pBuffer,r->ifr_hwaddr.sa_data,6);
close(s);
free(ifr);
returntrue;
}
returnfalse;
}
3. 如何為Android,Mac和Windows平台創建Java JNI動態鏈接庫
Android1、下載NDK,並在Eclipse中配置路徑:
2、創建一個Android工程hellojni。右鍵工程,選擇Add Native Support自動生成C/C++工程:
3、修改C/C++代碼,配置一下Android.mk:
4、點擊保存就會自動生成動態鏈接庫libhellojni.so。也可以通過命令ndk-build手動生成。
Windows
1、打開Visual Studio,創建一個Win32工程hellojni:
2、在應用類型中選擇DLL:
3、配置頭文件和庫的路徑:
4、點擊build就可以生成hellojni.dll。
Mac OS X
1、打開Xcode,創建一個工程hellojni :
2、framework選擇STL:
3、在build設置里,配置JavaVM 頭文件路徑和庫路徑:
4、點擊build就可以生成libhellojni.dylib。
Java工程中如何使用JNI:
1、申明native介面:
public native String stringFromJNI();
public native static void nativePrint();
2、載入動態鏈接庫:
static {
System.loadLibrary("hellojni");
}
4. Android配置ndk支持M1晶元:arm64-v8a
Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: The currently selected variant "debug" uses split APKs, but none of the 1 split apks are compatible with the current device with ABIs "arm64-v8a".
不同的 Android 設備使用不同的 CPU,而不同的 CPU 支持不同的指令集。CPU 與指令集的每種組合都有專屬的應用二進制介面 (ABI)。M1晶元的macbook pro則需要支持"arm64-v8a"的ABI;
配置 build.gradle :
Android ABI詳情,可以去官方文檔查看:
https://developer.android.com/ndk/guides/abis#gradle
5. mac 下使用Android studio 進行ndk開發 報這個錯是什麼問題
1. 在Eclipse->Project->Property->C/C++ Build->Environment ,添加一個變數,名字任意,例如 ndk-build,指向的路徑是NDK所在目錄,例如:/Users/apple/Documents/Soft/Android-ndk-r10d2. 在Eclipse->Project->Property->C/C++ Build,在 Builder 里默認是 ndk-path,通過從 Variable 里選擇上面創建的 ndk-build,即可。另外還有個問題:提示:AndroidManifest.xml file missing!這時只需要Eclipse->Project->Clean 即可!
6. mac 下 android studio 怎樣使用 jni 單步調試
JNI對性能的提升沒有我預想中的大,對於for循環的速度提升大概在1倍左右,所以如果數量級不大的話,性能提升不會很明顯
JNI編完之後,不能調試,是不是很蛋疼,不像android Java可以看出錯信息。JNI crash之後,界面上表示為沒有任何反應,過段時間直接退出應用,沒有提示、也沒有XXX已停止運行。第一次遇到真是無從下手,有沒有!!!,經過對Java層的log研究發現,原來JNI crash後,cpu就直接死在那裡(相當於assert,程序停止運行)。果斷時間後JAVA層發現程序已掛之後(進程僵死),就強制殺死該進程。於是程序直接退出而無提示。(以上分析純屬個人分析,如有不對,敬請指正)。這時發現如果能有單步調試功能那該多好!!
網路一下 ndk單步調式 一般能搜出如下結果:
1、安裝CDT插件
2、安裝Sequoyah插件
3、使用插件裝入JNI文件、導入JNI頭文件
4、配置eclipse JNI編譯環境
5、修改ndk-gdb腳本
6、運行ndk-gdb腳本,並修改生成的文件(windows需安裝cygwin)
7、配置eclipse native調試環境
嚇尿了,有沒有!!!單步調試這么麻煩!!!麻煩不說,windows下使用ndk-gdb效率還特別低
另外,對於修改google release的ndk腳本,我一直持保留態度,安說release的腳本應該直接能用的,為什麼要做修改後才能用呢?
以上步驟,我花了2——3小時搞定,僅僅為了能打個斷點——
在機緣巧合下,我看到一篇google官方的文章「Using NDK Plugins」
令人興奮的是,ADTr20已經支持JNI單步調試,再也不需要如上這么麻煩的步驟了
你現在需要做的只需以下2步:
1、使用ndk-build編譯時,加上如下參數NDK_DEBUG=1,之後生成so文件之外,還會生成gdbobserver,gdb.setup調式文件
2、在項目的Debug Configuration中選擇Android Native Apllication,點擊下方Debug
3、Enjoy your Debugging!
如何?是不是超簡單,而且調試速度還相當快哦
ADTr20已經比較完美支持NDK開發了。可以集成ndk編譯,只需在項目右鍵Add Native Support,就能自動生成jni文件,並部署編譯環境(注意這個過程是不可逆的,手動刪除jni文件後,會編譯不過)。如果需要生成NDK調試文件,需要右鍵項目->properties->C/C++ build->Builder Setting 把默認的Build Command : ndk-build 修改成 ndk-build NDK_DEBUG=1
最後推薦一個很有用的android官方網站//tools。android。com/ 這個網站包含大多數ADT使用方法和新版ADT的介紹,獲益匪淺
只可惜這種方法只能在ndk環境下使用,如果要對framework中的jni進行單步調試,應該就行不通了,推薦的一種方法是把它在NDK中編譯調試完畢,然後將生成的so放在system/lib下
7. mac android ndk bin文件如何安裝
直接解壓就行了。然後把bin的目錄加到系統PATH里:
export PATH=$PATH:/xxx/NDK/bin
8. mac cocos2dx 安卓環境 ndk怎麼裝
一、下載cocos2d-x最新安裝包
在終端中cd到本地將要存放目錄,執行git命令
二、如果開發ios程序,需要配置xcode模板
下好後,cd到cocos2d-x目錄,執行裡面的sh腳本,安裝cocos2d-x模板
sudo ./install-templates-xcode.sh -f
中間要輸入管理員密碼
之後就可以在xcode中看到新增加模板
三、如果是開發android程序
1.搭建好一個可以開發android開發環境,包括eclipse,android sdk,ADT等(最好是最新版本),確保可運行調試
2.為eclipse安裝c/c++插件
打開eclipse,選擇菜單Help/Install New Software
在Work With下拉框中選擇自己eclipse的版本名,然後在插件里選中Programming Languages,打開下拉列表
選擇C/C++ Development Tools安裝,重啟eclipse
3.在developer.android.com/tools/sdk/ndk/index.html下載最新的NDK,比如android-ndk-r8d-darwin-x86.tar.bz2,注意是mac版的,並解壓縮
4.配置全局環境變數
終端中執行命令
vim ~/.bash_profile
輸入i進行編輯,加入如下配置
export COCOS2DX_ROOT=/Users/cocos2dx/cocos2d-x
export NDK_ROOT=/Users/android/android-ndk-r8d
export ANDROID_NDK_ROOT=/Users/android/android-ndk-r8d
export ANDROID_SDK_ROOT=/Users/android/android-sdk-macosx
export PATH=$ANDROID_NDK_ROOT:$PATH
export PATH=$ANDROID_SDK_ROOT:$PATH
按esc,再命令
:wq
保存配置,上面配置中相應的路徑自己做替換
COCOS2DX_ROOT對應cocos2d-x本地存放目錄
NDK_ROOT和ANDROID_NDK_ROOT對應NDK本地存放目錄
ANDROID_SDK_ROOT對應安卓sdk本地目錄
5.創建一個android測試項目
cd到cocos2d-x本地目錄,執行命令
./create-android-project.sh
再輸入包,回車
com.test.testdemo
再輸入提示的sdk的id,(比如3,對應sdk4.0.3),回車
再輸入應用的目錄名,比如TestDemo,回車
此時cocos2d-x目錄下就有了一個TestDemo目錄
cd到TestDemo目錄下的proj.android中,然後執行以下命令,編譯項目
./build_native.sh
6.創建AVD