为 Android 生成 native 程序
2010-04-12 16:04:00 来源:WEB开发网为android生成原生应用程序,不难啊。
初始条件:安装android的ndk,比如目前最新的 android-ndk-r3。(2010-03版)
我的目录结构:
~/android-ndk-r3
~/android-ndk-r3/temp 这个是当前工作目录。
Step1: 写两个文件:
hello.c:
#include
int main()
{
printf("hello, world ");
return 0;
}
start.c
#include
extern int main(int argc, char **argv);
void _start(int argc, char **argv)
{
exit (main (argc, argv));
}
Step2: compile
../build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-gcc
-I ../build/platforms/android-3/arch-arm/usr/include/ -c hello.c
../build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-gcc
-I ../build/platforms/android-3/arch-arm/usr/include/ -c start.c
Step3: link
../build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-ld --entry=_start
--dynamic-linker /system/bin/linker -nostdlib -rpath /system/lib
-L ../build/platforms/android-3/arch-arm/usr/lib/
-rpath ../build/platforms/android-3/arch-arm/usr/lib/
-lc -o hello hello.o start.o
Step4: execute:
adb push hello /data/hello
adb shell
cd /data
chmod 755 ./hello
./hello
hello, world
值得注意的一点是,在/sdcard目录下,程序运行不起来。我一开始还以为是没编好呢。后来扔到/data目录下,才成功跑起来。
- ››Android 当修改一些代码时,使用什么编译命令可以最...
- ››Android 如何添加一个apk使模拟器和真机都编译进去...
- ››Android 修改Camera拍照的默认保存路径
- ››Android 如何修改默认输入法
- ››android开发中finish()和System.exit(0)的区别
- ››Android手势识别简单封装类
- ››android中查看项目数字证书的两种方法
- ››Android中获取IMEI码的办法
- ››android 相机报错 setParameters failed
- ››Android重启运用程序的代码
- ››Android为ListView的Item设置不同的布局
- ››android bitmap与base64字符串的互相转换
赞助商链接