Posted  by  admin

Ndk Build Android Studio For Mac

Ndk Build Android Studio For Mac

在Mac下用Android Studio进行NDK开发时碰到一些问题,而网上的一些资料并不全面或者已经过时,所以自己总结了一下,希望对后面的开发者有一些帮助。. For simplicity, each tutorial is self-contained, and builds according to standard Android Studio build procedures. Running Your Project To run your project, choose an APK to run by choosing Run > Run.

Android Studio

在Mac下用Android Studio进行NDK开发时碰到一些问题,而网上的一些资料并不全面或者已经过时,所以自己总结了一下,希望对后面的开发者有一些帮助。 1. 安装Android Recording studio 直接从下载最新stable版本的的dmg格式安装,一键安装轻松自在。我下载的是2.2.3版本,可以用迅雷下载。 PS:在此吐槽下Google android Studio的更新速度(包括非stable版本),一个月基本有>=2个版本更新,总给我一种不靠谱的感觉,为啥不只发stable版本,还我一个清静的世界。 2. NDK环境配置 要编译和调试本地代码(native program code),你需要下面的组件: 1)The Google android Native Growth Package (NDK): 让你能在 Android 上面使用 Chemical 和 D 代码的工具集。 2)CMake: 外部构建工具。如果你准备只使用 ndk-build 的话,可以不使用它。 3)LLDB: Google android Facility 上面调试本地代码的工具。 你可以使用 SDK Manager 来安装上述组件: 1)打开一个项目,从菜单栏中选择 Tools >Google android >SDK Supervisor。 2)点击 SDK Equipment选项卡。 3)勾选 LLDB,CMake和 NDK。. 图2 SDK Upgrade Sites设置 3. cpp目录存放你所有 indigenous program code 的地方,包括源码,头文件,预编译项目等。对于新项目,Google android Facilities 创建了一个 C 模板文件: native-Iib.cpp,并且将该文件放到了你的 ápp 模块的 src/primary/cpp/目录下。这份模板代码提供了一个简答的 M 函数:stringFromJNI,该函数返回一个字符串:”Hello from D”。.

External Build Data files目录是存放 CMake 或 ndk-buiId 构建脚本的地方。有点类似于 build.gradle 文件告诉 GradIe 如何编译你的 APP 一样,CMaké 和 ndk-build 也需要一个脚本来告知如何编译你的 indigenous library。对于一个新的项目,Android Facilities 创建了一个 CMake 脚本: CMakeLists.txt,并且将其放到了你的 module 的根目录下。 4. 编译运行示例App 当你点击 Work按钮,Android Studio 会编译并启动一个 APP ,然后在 APP 中显示一段文字”Hi from C”。从编译到运行示例 APP 的流程简单归纳如下: 1)Gradle 调用外部构建脚本,也就是 CMakeLists.txt。 2)CMake 会根据构建脚本的指令去编译一个 Chemical 源文件,也就是native-Iib.cpp,并将编译后的产物扔进共享对象库中,并将其命名为 libnative-Iib.so,然后 Gradle 将其打包到 APK 中。 3)在运行期间,APP 的 MainActivity 会调用System.loadLibrary方法,加载 indigenous library。而这个库的原生函数,stringFromJNI,就可以为 APP 所用了。 4)MainActivity.onCreate 方法会调用stringFromJNI,然后返回 “Hello from C”,并更新 TextView 的显示。 注意: Instant Run并不兼容使用了 native program code 的项目。Android Facilities 会自动禁止 Quick Work功能。 更多详细资料可查看参考资料。 5.