android 系统应用 开发 注意事项(该版本采用方法效率较高)

1. 编译内核 网上教程较多,官方的在这里http://source.android.com/source/building.html,如果遇到错误,基本上是把错误日志信息拷贝给google,然后找到自己要的结果,也可以找些参考文章,上面列举了常见的一些必须要按照的软件包,这里不一一列举。


2. 编译好源码后,会在相应的目录下生成img镜像和一些工具,网上大多数做法事导入环境变量的方式,在当前用户主目录下的.bashrc中添加以下配置

export ANDROID_PRODUCT_OUT=~/project/android/cupcake2/out/target/product/generic 

ANDROID_PRODUCT_OUT_BIN=~/project/android/cupcake2/out/host/linux-x86/bin 

export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}; 

同步下环境变量

source ~/.bashrc

然后运行时候要敲一串命令

emulator -image system.img -data userdata.img -ramdisk ramdisk.img 

是不是麻烦啊 每次都要敲一长串的emulator xxx

Google提供了更省事的做法(http://source.android.com/source/using-eclipse.html ,包括导入源码)

首先把你在.bashrc中配置的那几行给注释了

在源码根目录执行 source build/envsetup.sh #(每次运行这个shell文件会给我们生成一些脚本,可以给我们做好多省事的事)

运行 

lunch 1

make    #(可以不用此步骤,因为之前编译过,如果不成功加上此步骤再来一次)

emulator #启动模拟器, 一切ok。省去了后面的参数

3. eclipse中编辑代码,现在看来步骤还是比较简单,但是我在网上看别人教我的方法,我实在看不懂。今早找到这个http://source.android.com/source/using-eclipse.html尝试下,成功了。

到源码根目录执行

cp development/ide/eclipse/.classpath .   #注意最后面有个点(.),代表当前目录

chmod u+w .classpath  #默认组内用户没有写的权限,省事加上写权限

(以上两部可以通过图形界面操作,包括改权限,在属性中可以改)

然后还需要改下eclipse配置,主要是配置下jvm的堆大小,如果给的内存太小的话导入时可能会导致内存溢出,即使不出现内存溢出错误,堆内存太小会频繁垃圾回收,回收会有短暂的暂停,会比较卡。

改为

-Xms128m 

-Xmx512m 

-XX:MaxPermSize=256m

现在通过eclipse创建一个java工程

File > New > Java Project 

输入工程名

选择"Create project from existing source", 在browse中选择android源码根路径,注意是跟路径,因为.classpath被我们拷贝到了根目录 ;打开.classpath看看里面配置就能想明白为什么要这么操作了。


4. 编译系统应用每次都之作system.img实在是麻烦,可以在编译好源码后到out/target/product/generic/system/app下把你想要开发的源码删除,然后再回到源码根目录make snod,该命令是制作一个system.img(很慢,虚拟机上要分多钟),会把刚才那个目录下(system/app)的应用打包在system.img中。因为你打包时没有包含这个应用,所以你可以通过make把编译好的apk按照常规方式安装 adb install xx.apk,或者卸载. adb uninstall com.xx.xx..


5. 如果不按照上面的操作是很难删除系统应用的,我尝试过网上各种办法删除系统应用,但都未果。使用这个方法效率最高,虽然也可以每次编译后制作system.img,然后启动模拟器。但是结果可以想象,一天你能测试20次就算你系统牛了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值