- 浏览: 126605 次
- 性别:
- 来自: 南京
最新评论
-
cenyi2012:
来个图文并茂不是更好。。。
TabHost两种实现方式 -
youlingxifeng:
谢谢了,很受用,你有没有遇到过这样的问题啊build/core ...
Android源码编译全过程 -
flower_is:
不错不错!
Android的selector,背景选择器 -
yang668:
很好 真心的谢谢
反编译apk -
windloverain:
编译2.3的代码需要用1.6的sdk
另外,安装完java s ...
Android源码编译全过程
1, ubuntu 下源码编译
最好切换到root用户下进行操作
$ sudo -s
1.1,下载jdk1.5 并安装(下载自解压版本并设置环境变量)
编辑/root/.bashrc 添加
#set java environment
export JAVA_HOME=/work/jdk1.5.0_22
export JRE_HOME=JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export SDK_HOME=/work/froyo/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86/tools
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$SDK_HOME:/work/froyo/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=/work/froyo/out/target/product/generic
1.2,安装(apt-get install xxx) git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
1.3,下载源码
$ mkdir mydroid
$ cd mydroid
$ git clone git://mirror.*****.com/froyo/tools/repo.git tools/repo.git
$ ./tools/repo.git/repo init -u git://mirror.*****.com/froyo/platform/manifest.git -b froyo
$ ./tools/repo.git/repo sync
1.4,编译源码
$ export ANDROID_JAVA_HOME=$JAVA_HOME
$ make
查看编译过程中是否有错误,一般情况不会有错误,如果有错误可能是某个依赖包没有安装,安装提示的依赖包后重新make
1.5,生成sdk
$ make PRODUCT-sdk-sdk ###使用make sdk 会出现R文件不能自动生成的问题
编译完成后会在/work/froyo/out/host/linux-x86/sdk/目录生成sdk
1.6,编译完成之后查看是否编译成功
$ . build/envsetup.sh
$ emulator& //启动模拟器,如果能成功启动代表编译成功。
2.Android 在eclipse中进行调试
2.1,拷贝development/ide/eclipse/.classpath到源代码根目录并修改.classpath
删除下面两行
<classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/google-common_intermediates/javalib.jar"/>
<classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/gsf-client_intermediates/javalib.jar"/>
添加 <classpathentry kind="lib" path="/work/froyo/out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/javalib.jar"/>
2.2,在eclipse中修改
2.2.1. 通过Create Project from existing source 导入froyo源代码
2.2.2. 展开packages/providers/CalendarProvider/src
2.2.3. 展开包: com.android.providers.calendar
2.2.4. 右键点击包com.android.providers.calendar
2.2.5. 选择 "new file"
2.2.6. 在对话框中选择点击 "Advanced >>" 按钮, 可以看到"Link to file in the file system" checkbox,
2.2.7. 勾选上 checkbox. 这时 "Browse..." 可用.
2.2.8. 点击 "Browse..." 按钮,选择EventLogTags.java (e.g.,out/target/common/obj/APPS/CalendarProvider_intermediates/src/src/com/android/providers/calendar/EventLogTags.java)
2.2.9. 点击OK
2.2.10. 点击 Finish (in "New File")
2.3 同样的方式修改com.android.providers.contacts的问题
3,调试
在IDE(eclipse)中修改源代码后在shell中编译运行
源码自带编译工具
先在android源码根目录执行 . build/envsetup.sh 再通过m/mm/mmm进行编译
- 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.
$cd /path/to/android/root
$. build/envsetup.sh
$lunch 1 # 初始化模拟器等
$make/m/mm/mmm #
$emulator& # you should see a GUI picture of a phone
$ddms& #调试工具
3.1 修改APK应用:在packages中的应用如果修改后都可以单独编译。先执行
$. build/envsetup.sh #初始化
$mmm packages/providers/ContactsProvider/
##用mm/mmm来编译生成的.apk并不会打包到system.img中,需要我们手动通过make snod把system文件夹打包为system.img
##可以使用make snod将模块打包到system.img中,也可以使用 adb install *.apk安装
注:通过mmm packages/providers/ContactsProvider/ 编译后的apk在 out/target/product/generic/system/app
这时候通过 adb install out/target/product/generic/system/app/xxx.apk 安装你刚修改过的apk就可以在模拟器上看到你修改的效果了。
3.2 修改framework:如果在Contacts.java中修改了,必须重新编译下framework。先执行
$ . build/envsetup.sh #初始化
#网上有的说要执行 make update-api,实际上直接make PRODUCT-sdk-sdk就可以将修改后的framework编译到sdk中。 #编译framework后,那些修改了的应用可以不用再单独编译了。4~6分钟
$ make PRODUCT-sdk-sdk #重新生成SDK 10~20分钟
********************************************************
eclipse上调试android里的程序。 cd android源码目录
. build/envsetup.sh
lunch 1 # to build the emulator
emulator & # you should see a GUI picture of a phone
ddms & # you should get a splufty debugging console
然后在eclipse中配置调试类型和端口:
在 Run->Debug Configurations->Remote java application上双击,然后,”Host:”设为 localhost,”Port:”设为8700,”Connection Type”为Standard(Socket Attach)
然后“Apply”
注意,在点击”Debug”时苦出错,说8700端口被占用,那么把DDMS程序关掉,重新打开DDMS就OK了。如果提供连不到VM错误时,请注意,要先在DDMS中选中某一进程(对应某一应用程序),才能在eclipse执行 Debug。
********************************************************
创建sdcard和avd:(也可以正常调试)
root@rdcdz10851:~# mksdcard 1024M sdcard.img
root@rdcdz10851:~# android create avd -n myavd -t 1 -c sdcard.img
root@rdcdz10851:~# emulator @myavd & 或者 emulator -avd myavd (注意:要在sdcard.img所在目录执行启动模拟器命令 root@rdcdz10851:~# adb push Pictures/baqiao.jpg /sdcard/)
root@rdcdz10851:~# ddms &
- Android_env_setup.txt.zip (2.9 KB)
- 下载次数: 33
评论
2 楼
youlingxifeng
2013-05-10
谢谢了,很受用,你有没有遇到过这样的问题啊
build/core/base_rules.mk:166: *** packages/apps/Launcher2: MODULE.TARGET.APPS.Launcher2 already defined by packages/apps/SystemUI,
我在源码里面放进了SystemUI后,重新编译,就报这个错了,试了网上说的把Launcher2里面的bin删掉,也不行。可以帮忙吗!xie774505257@163.com
build/core/base_rules.mk:166: *** packages/apps/Launcher2: MODULE.TARGET.APPS.Launcher2 already defined by packages/apps/SystemUI,
我在源码里面放进了SystemUI后,重新编译,就报这个错了,试了网上说的把Launcher2里面的bin删掉,也不行。可以帮忙吗!xie774505257@163.com
1 楼
windloverain
2011-03-19
编译2.3的代码需要用1.6的sdk
另外,安装完java sdk后设置环境变量中的work/froyo/out是自己建立的目录吧?直接在root用户主文件夹下建立就可以?
另外,安装完java sdk后设置环境变量中的work/froyo/out是自己建立的目录吧?直接在root用户主文件夹下建立就可以?
发表评论
-
system挂载为rw
2011-07-28 15:07 2788adb shell #su #mount -o remou ... -
制作TextView的倒影
2011-07-19 13:52 2026package com.javaeye.graphics; ... -
Androkd开发坏境配置以及常用插件
2011-06-21 10:39 1107步骤: 1、安装jdk,并配置环境变量 2、解压android ... -
Android的selector,背景选择器
2011-05-22 11:50 1716首先android的selector是在drawable/xx ... -
PUSH机制
2011-04-20 13:54 12711、长连接 2、Android and XMPP htt ... -
ListView快速滑动搜索
2011-04-14 10:16 1233相关资料: Android-ListView快速滚动示例增加首 ... -
测试环境Hosts设置
2011-02-25 18:25 1738设置方法: //启动虚拟手机并更改分区大小为128M emul ... -
Activity的launchMode
2011-01-16 17:02 798请看博客:http://marshal.easymorse.c ... -
android多分辨力支持 密度与分辨力
2010-12-29 15:37 1209关于Android的分辨率支持,为大家翻译官方文档 看世界杯的 ... -
用shape美化控件
2010-12-29 10:34 908如果你对Android系统自带的UI控件感觉不够满意, ... -
Android知识积累
2010-12-28 13:44 988引用系统资源: android:textColor=& ... -
自定义对话框Dialog
2010-12-16 16:55 1491提醒对话框: 布局文件:alertdialog.xml < ... -
Dialog
2010-12-16 14:45 10631. 创建对话框 1. Showing ... -
Android 文件系统的结构
2010-11-06 22:56 10131、Android 文件系统的结构 Android源码编译后 ... -
DB和File工具类
2010-11-01 15:46 1510DB工具类: import java.io.B ... -
打造自己的动画效果
2010-10-29 14:25 945当我们的软件基本功能都实现了之后,我们是不是还可以把它做的更好 ... -
画图,Shader Path
2010-10-28 16:42 1249package com.javaeye.android.my; ... -
Google API应用
2010-10-27 16:21 1544获取Location Provider: android lo ... -
使用SoundPool播放游戏音效
2010-10-12 15:51 1748在Android开发中我们经常使用MediaPlayer来播放 ... -
获取手机屏幕大小两种方法
2010-10-09 09:16 973第一种: public Point getDisplayMe ...
相关推荐
Ubuntu_10.04下编译Android源码全过程
介绍android源码下载方法步骤、编译过程、编译后运行的方法。
Ubuntu平台下Android2.3源码下载编译全过程
Android 源码下载、配置、编译全过程;有关“私有文件”的方法请参考“翻译一个源代码编译G1ROM的教程,很好很入门”
Ubuntu 10.04下编译Android源码全过程
Ubuntu 8.04下编译Android源码全过程
此文章为iTOP-4412开发板Android操作系统源码编译过程索与故障及解决办法。
史上最详细的android4.4源码下载和编译过程,文档每个步骤都采用图解的方式详细讲解以及错误的解决方案。包括了最新版的android4.4的源码下载,编译和vm安装,ubuntu12.04的安装,很详细,很详细。文档见。
Ubuntu10.04下编译Android源码全过程.pdf
(修正的)Ubuntu_10.04下编译Android源码全过程
Ubuntu 10.04 下编译Android源码全过程
最近一直在搭建Android系统开发环境,找了好多资料,但是大都都有问题(最起码现在用起来有问题),所以把自己的过程记录下来,备忘,也希望能给别人帮个小忙,当然,顺便赚点小分~~吼吼
该文档为亲手实践总结,绝对靠谱,从下载openssh源码到成功使用的全过程,凝聚了网上很多经验。
第二部分内容,先简单讲解Android系统移植相关原理,然后一步步手把手教大家如何进行Linux内核移植、Android源码编译、以及Android到Cortex A8开发板的移植;第三部分内容,先教大家如何搭建裸机开发环境,然后带领...
第13章全面地剖析了Android的编译系统,包括编译工具、映像文件编译、SDK编译、NDK编译和目标系统的配置等;第14章分析了Android系统的启动过程;第15章讲解了Android的系统管理原理,包含内存管理、应用管理、电源...
第二部分内容,先简单讲解Android系统移植相关原理,然后一步步手把手教大家如何进行Linux内核移植、Android源码编译、以及Android到Cortex A8开发板的移植;第三部分内容,先教大家如何搭建裸机开发环境,然后带领...
第二部分内容,先简单讲解Android系统移植相关原理,然后一步步手把手教大家如何进行Linux内核移植、Android源码编译、以及Android到Cortex A8开发板的移植;第三部分内容,先教大家如何搭建裸机开发环境,然后带领...
本书是在分析Android源码的基础上展开的,而源码文件所在的路径一般都很长,例如,文件AndroidRuntime.cpp的真实路径就是framework/base/core/jni/AndroidRuntime.cpp。为了书 写方便起见,我们在各章节开头把该...