利用Android源代码编译一个自己写的Hello World模块
2014-03-03 17:55
274 查看
这应该是我的Android底层开发第二篇文章,在编译Android源代码成功的基础上又进一步利用Android源代码编译成功了一个自己写的hello world,算入门第二步了。
1、在android 源代码路径下的development路径下创建hello路径;
2、创建hello.c文件;
3、在hello.c文件中写入以下内容:
点击(此处)折叠或打开
#include <stdio.h>
int main()
{
printf("Hello World!\n");// 输出Hello
return 0;
}
4、创建Android.mk文件;
5、在Android.mk文件中写入以下内容:
点击(此处)折叠或打开
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:=\
hello.c
LOCAL_MODULE:=helloworld
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)
6、回到源代码顶层目录
7、单独编译helloworld模块:
点击(此处)折叠或打开
make helloworld
比编译整个源代码时间短多了。
8、进入源代码路径下的out/target/product/generic路径
9、后台方式运行模拟器
点击(此处)折叠或打开
emulator @avd名称 -image system.img -data userdata.img -ramdisk ramdisk.img &
终端执行后多回次回车。
10、 将helloworld文件复制到模拟器中
点击(此处)折叠或打开
adb root
adb remount
进入源代码路径下的out/target/product/generic/system/bin路径下
adb push ./helloworld /system/bin
11、进入虚拟机看结果
点击(此处)折叠或打开
adb shell
cd /system/bin
./helloworld
1、在android 源代码路径下的development路径下创建hello路径;
2、创建hello.c文件;
3、在hello.c文件中写入以下内容:
点击(此处)折叠或打开
#include <stdio.h>
int main()
{
printf("Hello World!\n");// 输出Hello
return 0;
}
4、创建Android.mk文件;
5、在Android.mk文件中写入以下内容:
点击(此处)折叠或打开
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:=\
hello.c
LOCAL_MODULE:=helloworld
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)
6、回到源代码顶层目录
7、单独编译helloworld模块:
点击(此处)折叠或打开
make helloworld
比编译整个源代码时间短多了。
8、进入源代码路径下的out/target/product/generic路径
9、后台方式运行模拟器
点击(此处)折叠或打开
emulator @avd名称 -image system.img -data userdata.img -ramdisk ramdisk.img &
终端执行后多回次回车。
10、 将helloworld文件复制到模拟器中
点击(此处)折叠或打开
adb root
adb remount
进入源代码路径下的out/target/product/generic/system/bin路径下
adb push ./helloworld /system/bin
11、进入虚拟机看结果
点击(此处)折叠或打开
adb shell
cd /system/bin
./helloworld
相关文章推荐
- Android如何防止apk程序被反编译
- Android之系统自带的文字外观设置及实际显示效果图
- Android APK反编译详解(附图)
- 使用Loaders
- 一个帖子学会Android开发四大组件 (详细篇)
- Android 手动显示和隐藏软键盘 (转)
- 【Android Developers Training】 74. 序言:通过无线连接设备
- android 性能优化总结
- Android四大基本组件介绍与生命周期
- android X86之旅
- Androidpn的使用
- 基于Qt-Windows平台的Android开发部署
- 解决android加载大图片,内存溢出问题
- android自动化测试之生成单元测试报告
- 遮罩层 CCClippingNode Stencil buffer is not enabled (ios/android)
- Android 中点击返回键弹出“在按一次退出程序”的做法
- Android软键盘在清单文件中所有属性解释大全
- [Android] android核心分析
- android基础1
- 【Android Audio】Android Audio System 之三: AudioPolicyService 和 AudioPolicyManager