- 浏览: 129407 次
- 性别:
- 来自: 南京
最新评论
-
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 2838adb shell #su #mount -o remou ... -
制作TextView的倒影
2011-07-19 13:52 2080package com.javaeye.graphics; ... -
Androkd开发坏境配置以及常用插件
2011-06-21 10:39 1131步骤: 1、安装jdk,并配置环境变量 2、解压android ... -
Android的selector,背景选择器
2011-05-22 11:50 1749首先android的selector是在drawable/xx ... -
PUSH机制
2011-04-20 13:54 13231、长连接 2、Android and XMPP htt ... -
ListView快速滑动搜索
2011-04-14 10:16 1283相关资料: Android-ListView快速滚动示例增加首 ... -
测试环境Hosts设置
2011-02-25 18:25 1853设置方法: //启动虚拟手机并更改分区大小为128M emul ... -
Activity的launchMode
2011-01-16 17:02 885请看博客:http://marshal.easymorse.c ... -
android多分辨力支持 密度与分辨力
2010-12-29 15:37 1251关于Android的分辨率支持,为大家翻译官方文档 看世界杯的 ... -
用shape美化控件
2010-12-29 10:34 937如果你对Android系统自带的UI控件感觉不够满意, ... -
Android知识积累
2010-12-28 13:44 1018引用系统资源: android:textColor=& ... -
自定义对话框Dialog
2010-12-16 16:55 1536提醒对话框: 布局文件:alertdialog.xml < ... -
Dialog
2010-12-16 14:45 11031. 创建对话框 1. Showing ... -
Android 文件系统的结构
2010-11-06 22:56 10531、Android 文件系统的结构 Android源码编译后 ... -
DB和File工具类
2010-11-01 15:46 1561DB工具类: import java.io.B ... -
打造自己的动画效果
2010-10-29 14:25 1039当我们的软件基本功能都实现了之后,我们是不是还可以把它做的更好 ... -
画图,Shader Path
2010-10-28 16:42 1277package com.javaeye.android.my; ... -
Google API应用
2010-10-27 16:21 1660获取Location Provider: android lo ... -
使用SoundPool播放游戏音效
2010-10-12 15:51 1803在Android开发中我们经常使用MediaPlayer来播放 ... -
获取手机屏幕大小两种方法
2010-10-09 09:16 1005第一种: public Point getDisplayMe ...
相关推荐
### 编译Android源码全过程详解 #### 一、获取Android源代码 在开始编译Android源码之前,首先需要确保获取完整的Android源代码。这一部分将详细介绍如何使用Git和Repo脚本完成这一任务。 ##### Git简介 Git是一...
本文将详细阐述如何编译Android源码以生成`classes.jar`,以及这个过程中的关键知识点。 首先,让我们了解`classes.jar`的作用。它包含了Android系统的Java类库,包含了Android Framework的核心API,开发者可以从中...
### Ubuntu 10.04下编译Android源码全过程详解 #### 一、获取Android源代码 在Ubuntu 10.04环境下编译Android源码的第一步是从官方仓库获取完整的源代码。这一过程主要依赖于Git,一种由Linux之父Linus Torvalds...
同时,安装Java Development Kit (JDK) 1.6或更高版本,因为Android源码编译需要JDK支持。 接下来,为了下载和管理源码,你需要安装一些必备工具。首先,通过`sudo apt-get install git-core curl`命令安装`git-...
### Android源码编译及ROM制作 #### 一、概览 在《android源码编译及rom制作.pptx》这份文档中,主要讲解了如何进行Android源码的编译以及ROM的制作过程。这一过程对于那些希望深入了解Android操作系统工作原理、...
通过修改fstab文件解决编译过程中的问题后,Android源码编译过程顺利结束,四个文件成功生成,并通过fastboot烧录到iTOP-4412开发板上。至此,开发板能够正常运行Android操作系统,开发者可以进一步进行应用开发、...
本文将详细解析从环境搭建到源码编译的全过程,确保读者能够顺利地从零开始构建自己的Android系统。 #### 一、基础软件环境搭建 1. **安装JDK并设置环境变量** - 首先,安装Java Development Kit(JDK),这是...
史上最详细的android4.4源码下载和编译过程,文档每个步骤都采用图解的方式详细讲解以及错误的解决方案。包括了最新版的android4.4的源码下载,编译和vm安装,ubuntu12.04的安装,很详细,很详细。文档见。
### Android源码从下载到编译全过程 #### 一、环境搭建 在开始介绍如何从零开始搭建Android系统开发环境并完成源码的下载及编译前,我们需要明确几个关键点: 1. **操作系统**: 本教程适用于Ubuntu 10.04 x86 32...
总之,Ubuntu 10.04下编译Android源码是一个涉及Git版本控制、Repo管理工具、系统依赖安装和源码编译的复杂过程。确保正确安装和配置这些工具是成功构建Android系统的关键。在编译过程中,耐心和对错误的调试能力也...
标题《SQLCipher_for_Android_source_build_源码编译过程》和描述《SQLCipher_for_Android_sourcebuild_源码编译过程》指向了一个关于如何在Android平台上构建SQLCipher源码的过程。SQLCipher是一个开源的数据库加密...
### Ubuntu 8.04下编译Android源码全过程知识点详解 #### 一、获取Android源代码 在本文档中,介绍了如何在Ubuntu 8.04系统环境下获取Android源代码的过程。此过程主要涉及到了Git版本控制系统的使用以及Repo脚本...
### Ubuntu 10.04 下编译 Android 源码全过程详解 #### 一、获取 Android 源代码 **Git与集中式版本控制系统对比** - **Git**:由 Linux Torvalds 开发,是一种分布式版本控制系统。与 Subversion 和 CVS 这样的...
### Ubuntu 10.04 下编译 Android 源码全过程详解 #### 一、获取 Android 源代码 1. **Git 的介绍与安装**: - Git 是一种分布式版本控制系统,由 Linux Torvalds 为了更好地管理 Linux 内核开发而创建。 - **...
在Android开发过程中,有时我们需要对已有的APK应用进行反编译,以便了解其工作原理、查看源代码或进行二次开发。"Android反编译全套工具"是一个集合了多种工具的压缩包,提供了完整的反编译流程支持,包括APK的拆解...
### 编译 Android 全过程详解 #### 一、获取 Android 源代码 在开始编译 Android 源码之前,第一步自然是获取完整的源代码。对于 Ubuntu 10.04 这样的 Linux 发行版,有几种方法可以获得源码,其中最常见的是使用 ...
Android 4.2的源码编译是一项复杂但重要的任务,对于开发者来说,深入理解Android系统的内部运作和进行自定义修改都离不开对源码的掌握。本文将详细介绍在Ubuntu 10.04 64位系统上下载并编译Android 4.2源码的全过程...
了解并实践Android源码的编译过程,不仅有助于开发者深入理解Android系统的工作原理,而且对于定制和优化系统、开发驱动程序、以及修复bug等方面都有着极大的帮助。通过不断学习和实践,你将能够更好地驾驭这个开源...
### 最全的Android源码目录结构详解 在深入解析Android源码目录结构之前,我们先了解下Android系统作为全球最大的移动操作系统之一,其内部结构复杂且庞大,涉及到硬件抽象层(HAL)、应用框架、核心库等多个层次。...