如何用Android NDK 生成so文件

如何用Android NDK 生成so文件

发布:2010-6-07 18:20 | 作者: xyz_lmn  | 来源:本站 | 查看:1次 | 字号:      

转自:

http://www.theiter.com/2010/03/用android-ndk编写一个可执行程序.html

大家都知道NDK可以用C/C++为Android编写动态库,这个网络上和NDK里面文档和例子都讲的很清楚。可能有时候需要用C/C++为Android实现一个可执行程序。今天学习了下,其实很简单,基本和编写.so差不多,就是配置有点改变。至于如何搭建NDK开发环境,就不再说了,之前有写过相关的文章(Android学习笔记之NDK开发环境配置(WIN32))。

在写详细步骤之前,强烈建议大家仔细阅读NDK下面的几篇文档“HOWTO.TXT”,“ANDROID-MK.TXT”,“APPLICATION-MK.TXT”。他们分别讲了如何使用NDK,编译脚本语法等等。

言归正传,详细说说我是如何实现helloworld的:

 

  • 在NDK的apps目录下创建helloworld目录,并且创建相关文件,目录结构如下:

helloworld

–Application.mk

–project

   –jni

      –Android.mk

      –helloworld.c

Application.mk:

  1. APP_PROJECT_PATH := $(call my-dir)/project  
  2.   
  3. APP_MODULES      := helloworld  

Android.mk:

  1. LOCAL_PATH := $(call my-dir)  
  2.   
  3. include $(CLEAR_VARS)  
  4.   
  5. LOCAL_MODULE    := helloworld  
  6. LOCAL_SRC_FILES := helloworld.c  
  7.   
  8. #include $(BUILD_SHARED_LIBRARY)//编译动态库  
  9. include $(BUILD_EXECUTABLE)//编译可执行程序  

helloworld.c

  1. #include<stdio.h>  
  2.   
  3. int main(int argc, char *argv[])  
  4. {  
  5.   printf("Hello world!/n");  
  6.   return 0;  
  7. }</stdio.h>  

 

  • 编译生成可执行程序(我是在win32下使用cygwin)。启动cygwin,在shell下进入到代码所在的目录(NDK_ROOT),输入:“make APP=helloworld”。

image

 

 

 

 

 

 

 

 

 

在NDK_ROOT/apps/helloworld/project/libs/armeabi/目录有生成了“helloworld”可执行程序。到这里编译已经完成了。

 

  • 接下来就是把可执行程序复制到目标机器上,我的操作如下:

cd NDK_ROOT/apps/helloworld/project/libs/armeabi

adb push /data/helloworld

adb shell

chmod 777 /data/helloworld/helloworld

/data/helloworld/helloworld

如下图,在adb上显示效果

image

在模拟器上显示效果

image

OK,全都搞定!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值