Ubuntu 下 android-ndk-r9d

Ubuntu 下 android-ndk-r9d 编译可执行程序

 
一、建立工程目录结构:
目录结构示意图:
第一层目录:NDK工程名根目录文件夹
第二层目录:jni <-- android-ndk-r4b/ndk-build 规定的源码存放文件夹
NDK工程名根目录文件夹
 |---Application.mk
 |---jni
      |---Android.mk
      |---*.h
      |---*.c
注意:
1. Application.mk 可选在 jni 目录下;
2. jni            必须在工程根目录下;
3. Android.mk     必须在 jni 目录下;
4. 以上的目录和文件的名字注意大小写;
5. C 语言的源代码要放在 jni 目录下;

二、Application.mk 文件内容:
APP_PROJECT_PATH := $(call my-dir)/jni
APP_MODULES      := 可执行程序名
#注:只有 APP_MODULES := 后面的可执行程序名需要根据实际情况而改变;
例子:
APP_PROJECT_PATH := $(call my-dir)/jni
APP_MODULES      := test

三、Android.mk 文件内容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := 模块名
LOCAL_SRC_FILES := 模块.c
#编译动态库
#include $(BUILD_SHARED_LIBRARY)
#编译可执行程序
include $(BUILD_EXECUTABLE)
例子:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := test.c
#编译动态库
#include $(BUILD_SHARED_LIBRARY)
#编译可执行程序
include $(BUILD_EXECUTABLE)

四、test.c 文件内容:
#include
int
main( int    argc,
      char** argv )
{
     printf( "hello android!\nI'm %s!\nI support android !!\n",
             "wzhnsc" );
     return 0;
}

五、编译:
1) 进入工程根目录下;
$ cd ~/androidcode/test
2) 执行 $ $NDK/ndk-build 命令;(参见我的另一篇 Ubuntu 下 Android NDK 开发环境搭建)
编译成功会提示如下信息:
warning: incompatible implicit declaration of built-in function 'printf'
Executable     : test
Install        : test => /home/wzhnsc/androidcode/test/libs/armeabi

六、放入 Android 模拟器执行程序看效果:
1) 执行 ~/android-sdk-linux_x86/tools 下的 android 脚本文件
$ cd ~/android-sdk-linux_x86/tools
$ ./android
2) 在弹出的“Android SDK and AVD Manager”对话框中 ->
点击左窗格中的“Virtual Devices” ->
点击右窗格中的[New...]按钮,创建一个名为"Android2.1"的新模拟器;
3) 运行名为"Android2.1"的模拟器
$ ./emulator -avd Android2.1
4) 进入 /home/wzhnsc/androidcode/test/libs/armeabi 目录下
$ cd /home/wzhnsc/androidcode/test/libs/armeabi
5) 在 Android 模拟器中的 /dev 目录下新建一个 test 文件夹
$ adb shell mkdir /dev/test
6) 将当前目录下的 test 可执行程序文件放入新建的 /dev/test 目录下
$ adb push test /dev/test/test
7) 对 /dev/test 目录下的 test 可执行程序文件进行可读可写可执行授权
$ adb shell chmod 0777 /dev/test/test
8) 进入 Android 模拟器 shell 命令行下
$ adb shell
9) 在 Android 模拟器 shell 命令行下执行 test 可执行程序
# cd /dev/test
# ls
test
# ./test
hello android!
I'm wzhnsc!
I support android !!
# exit
注:android脚本文件、adb 和 emulator 可执行程序均在 ~/android-sdk-linux_x86/tools 下;

你可能感兴趣的:(Linux)