`
luckfox
  • 浏览: 64151 次
  • 性别: Icon_minigender_1
  • 来自: 台灣
社区版块
存档分类
最新评论

Hello World for Android NDK

阅读更多
在網路看到有人有NDK寫一個可執行的程式,感覺很有趣,馬上就來實驗看看

我們以NDK下面的hello-jni當範例
1.修改hello-jni.c
$(NDK)\apps\hello-jni\project\jni\hello-jni.c

將下面這段程式碼加在原程式碼的下面
#include "stdio.h"
int main()
{
 printf("hello world!")
 return 0;
}

2.修改Android.mk
$(NDK)\apps\hello-jni\project\jni\Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.c

#include $(BUILD_SHARED_LIBRARY)
include $(BUILD_EXECUTABLE)      //加入此行,指出此為一個可執行檔


//修改好後,馬上進行編譯
$ make APP=hello-jni
Android NDK: Building for application 'hello-jni'
Compile thumb  : hello-jni <= apps/hello-jni/project/jni/hello-jni.c
apps/hello-jni/project/jni/hello-jni.c:37:2: warning: no newline at end of file
Executable     : hello-jni
Install        : hello-jni => apps/hello-jni/project/libs/armeabi


//編譯OK,看看我門生出啥東西來
Administrator@mychat-53bb70c5 /cygdrive/d/android-ndk-1.6_r1/apps/hello-jni/project/libs/armeabi
$ dir
hello-jni  libhello-jni.so

//開啟模擬器
D:\android-sdk-windows\tools>android list avd
Available Android Virtual Devices:
    Name: adv_Android1.6
    Path: C:\Documents and Settings\Administrator\.android\avd\adv_Android1.6.avd
  Target: Android 1.6 (API level 4)
    Skin: HVGA
---------
    Name: Android1.6
    Path: C:\Documents and Settings\Administrator\.android\avd\Android1.6.avd
  Target: Android 1.6 (API level 4)
    Skin: HVGA
D:\android-sdk-windows\tools>emulator @adv_Android1.6

//使用adb Shell將我們生成的可執行檔丟到模擬器上
D:\android-ndk-1.6_r1\apps\hello-jni\project\libs\armeabi>adb push hello-jni /data/hello-jni
205 KB/s (0 bytes in 3284.000s)

//利用adb 的shell命令進入模擬器的Shell
D:\android-ndk-1.6_r1\apps\hello-jni\project\libs\armeabi>adb shell

# cd /data
cd /data
# ls -l
ls -l
-rw-rw-rw- root     root         3284 2010-07-08 09:45 hello-jni
-rwxrwxrwx root     root         3282 2010-07-08 09:13 HelloWorld
drwxrwx--x system   system            2009-11-24 22:06 app
drwxrwx--t system   misc              2010-06-25 06:34 misc
drwxrwx--x shell    shell             2010-06-25 06:34 local
drwxrwx--x system   system            2010-06-25 06:34 data
drwxrwx--x system   system            2010-06-25 06:34 app-private

# chmod 777 hello-jni
chmod 777 hello-jni

# ./hello-jni
./hello-jni
Hello World!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics