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