C 跨平台开源库:Android : project 的常用编译方法
来源:百度文库 编辑:中财网 时间:2024/04/29 02:20:16
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.-x86.zip)
$ make sdk
3/ 创建ADT (Package ADT: ~/mysdk/android-eclipse-.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程序。
$ 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.
$ make sdk
3/ 创建ADT (Package ADT: ~/mysdk/android-eclipse-
$ 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程序。
radiohead 的 Paranoid Android 中文翻译
ALI PROJECT的详细资料
acid android的menbers除了yuki外谁可以给我介绍一下?
哪里可以下到acid android的歌恳求拜托了我要疯了!!!!
paranoid android中文歌词
project的文件保存类型
project与file的区别?
Microsoft project的日历使用?
求ALI PROJECT的详细资料
求ALI PROJECT的详细资料!!!!
ALI PROJECT的详细介绍
project manager 的工作范围是什么?
关于microsoft project 的问题
有会project server2003的吗?
NIKON的PICTURE PROJECT 在哪儿有下啊?
各位哪里有project 2003 的教程?
Project Drafting Specialist的中文意思是什么?
如何删除VC++的工程(project?)
有谁有ali project这个组合的资料?
有谁知道Ali Project的详细情况?
谁有ali project 的歌曲~~
哪位知道project 2003的下载地址
ALI PROJECT的所有专辑下载??
ALI PROJECT的所有专辑下载???