注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

东东的博客

江南烟雨,同大家一起分享

 
 
 

日志

 
 

开发android源码  

2010-05-10 17:54:49|  分类: android相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
0/ 准备工作 (生成mm等命令,具体参考: ~/mydonut/build/envsetup.sh)
$ cd mydonut
$ sh . build/envsetup.sh

1/ 编译项目 (Package: out/...,镜像文件路径:~/mydonut/out/target/product/generic)
$ make

2/ 创建SDK (Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>-x86.zip)
$ make sdk

3/ 创建ADT (Package ADT: ~/mysdk/android-eclipse-<buildnumber>.zip)
$ development/tools/eclipse/scripts/build_server.sh ~/mysdk $USER

4/ 编译模块 (访问模块对应的目录,执行mm命令,Package: ~/mydonut/out/target/product/generic/system/{model-name}/{submodel-name}.**)
$ cd frameworks/
$ mm

该system目录对应的就是设备/模拟器运行环境对应的system目录,我们讲新生成的模块文件(*.so/*.jar/*.apk/...)上传到运行环境下的对应目录后,重启设备生效
如果是应用程序(*.apk),除了Launcher应用需要重启,其他应用均不需要重启设备。

下面以更新framework为例,Package: ~/mydonut/out/target/product/generic/system/framework/framework.jar

4.1 修改framwork程序(~mydonut/framework/...),并访问framework目录,执行mm命令,编译新的framework.jar程序
$ cd framework
$ mm

其他模块,如库文件和应用程序也可以用同样的方法编译;应用程序还可以通过eclipse创建android 应用程序安装包。

4.2 首先我们运行模拟器(如果是手机,则通过USB连上终端)
$ cd {ANDROID SDK}/tools
$ ./emulator -avd {AVD_NAME}

4.3 然后通过shell命令,设置设备/system目录的写权限
$ ./adb shell
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# cd /system/bin
# cat sh > su
# chmod 4755 su
# exit

4.4 上传framework.jar到对应的运行环境目录
$ ./adb push {MYDONUT_OUT_PATH}/target/product/generic/system/framework/framework.jar /system/framework

4.5 通过命令,重启设备,更新生效。
$ ./adb shell
# stop
# start

注意:如果要关掉模拟窗口后生效,需要通过make命令,编译最后一次编译后的改动,生成新的img镜像文件,并更新到SDK,或生成新的SDK。

附1:命令注解
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
- croot:   Changes directory to the top of the tree.
- m:       Makes from the top of the tree.
- mm:      Builds all of the modules in the current directory.
- mmm:     Builds all of the modules in the supplied directories.
- cgrep:   Greps on all local C/C++ files.
- jgrep:   Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir:   Go to the directory containing a file.

附2:参考文档
~/mydonut/development/docs/howto_SDK_git_cygwin.txt
~/mydonut/development/docs/howto_build_SDK.txt
~/mydonut/development/docs/howto_use_cupcake_sdk.txt

附3:输出目录
~/mydonut/out/target/common/obj/JAVA_LIBRARIES
.jar程序包的完整输出目录,含有SDK中标志为@hide的程序和接口,应用程序中需要这些借口可以引入相关的.jar程序。

~/mydonut/out/host/linux-x86/bin
存放相关的工具tools目录

附4:创建完整的java项目
$ cp ./development/ide/eclipse/.classpath .
打开Eclipse,新增一个已经创建的java项目,执行mydonut目录,点击finish,完成项目的创建,可以查看项目下所有的java程序。

  评论这张
 
阅读(900)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017