android开发---6在源码目录与ndk-build下编译jni与apk(附demo)

一.在android源码目录下编apk
现在试一下将所有的代码,无论java还是cpp都放在源码目录下,然后用mmm编译
目录结构如下:
  1. cong@msi:/code/test/hellocpp$ tree 
  2. .
  3. ├── AndroidManifest.xml
  4. ├── Android.mk      
  5. ├── assets
  6. ├── jni
  7. │   ├── Android.mk
  8. │   ├── Application.mk
  9. │   └── hello-jni.cpp
  10. ├── project.properties
  11. ├── res
  12. │   ├── drawable-hdpi
  13. │   ├── drawable-ldpi
  14. │   ├── drawable-mdpi
  15. │   ├── drawable-xhdpi
  16. │   ├── layout
  17. │   └── values
  18. │   └── strings.xml
  19. └── src
  20.     └── com
  21.         └── example
  22.             └── hellojni
  23.                 └── HelloJni.java
2. 在源码下编译的关键点是两个Android.mk的写法
这个是参考的 ./packages/apps/Bluetooth/下的Android.mk写的

3.在源码目录下的使用:
  1. 编译: (-B 强行重新编译)
  2. cong@msi:/code/test$ mmm -./test_nv/hellocpp/ 
  3. 安装:
  4. cong@msi:/code/test$ adb install out/debug/target/product/ardbeg/system/app/hello-jni.apk
  5. 卸载:
  6. cong@msi:/code/test$ adb uninstall com.example.hellojni
4. 代码
内容就不说了,hello-jni,
hellocpp.rar (下载后重命名为hellocpp.tar.gz)第二版

hellocpp_btn.rar  (下载后重命名为hellocpp_btn.tar.gz)使用了xml
hellobtn.rar  (下载后重命名为hellobtn.tar.gz)使用了btn
5. adb shell 运行
am start -n com.package.name/com.package.name.ActivityName
adb shell am start -n  com.example.hellojni/.HelloJni


二.用ndk-build编jni

用ndk-build编jni,apk用eclipse生成,适合于纯应用层开发
hellobtn.rar   (下载后重命名为hellobtn.tar.gz)使用了btn的jni

你可能感兴趣的:(android开发)