第一部分:编译环境的安装和编译
1. 安装ubuntu9.10系统
2. 把源码传到ubuntu,并解压
3. 安装编译环境
A. sudo apt-get install bison
B. sudo apt-get install vim c. 解决:安装JDK 5.0
1):根据官方文档里所说,源代码的编译必须使用JDK5才能编译的了,所以这里我们使用jdk5
2): 需要先更新源,在终端里执行 sudo vim /etc/apt/sources.list
3): 在source.list里把以下2行拷贝到文档最后面:
deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
保存退出。
4): 执行 sudo apt-get update 更新源.
5): 配置编译环境并下载JDK5:sudo apt-get install sun-java5-jdk d. sudo apt-get install build-essential e. sudo apt-get install zlib1g-dev f. sudo apt-get install flex g. sudo apt-get install libncurses-dev h. sudo apt-get install libx11-dev i. sudo apt-get install gperf
4. 设置环境变量
vi ~/.bashrc #java 程序开发/运行的一些环境变量 JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun JRE_HOME=${JAVA_HOME}/jre export ANDROID_JAVA_HOME=$JAVA_HOME export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSP ATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export JAVA_HOME; export JRE_HOME; export CLASSPATH; HOME_BIN=~/bin/ export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN}; #java 程序开发/运行的一些环境变量 export ANDROID_PRODUCT_OUT=$androiddir/out/target/product /generic ANDROID_PRODUCT_OUT_BIN=$androiddir/out/host/linux -x86/bin export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_ PRODUCT_OUT}; 保存退出,然后执行source ~/.bashrc同步源 注意$androiddir是你android源码的目录
5. 在源码工程目录 make,等待.......完成
启动模拟器
. build/envsetup.sh emulator & 执行如果弹出模拟器窗口,则表示编译成功
第二部分:模块编译 在源码目录
A. 编译SDK
# make PRODUCT-sdk-sdk 编译好sdk后,在out/host/linux-x86/sdk/android-sdk_eng.xxx_linux-x 86,注意要移除出来,不如下次mmm编译时会清除掉他
B. 编译应用模块:不如联系人
. build/envsetup.sh mmm packages/apps/Contacts $ make snod 重新生成system.img,再运行模拟器: emulator &
//非必须,可以通过Eclipse工程创建
C. 创建Android Virtual Device
编译出来的SDK是没有AVD(Android Virtual Device)的,我们可以通过android工具查看: $ android list 创建AVD: $ android create avd -t 1 -n myavd 可以android help来查看上面命令选项的用法。创建中有一些选项,默认就行了 再执行android list,可以看到AVD存放的位置 以后每次运行emulator都要加-avd myavd或@myavd选项: $ emulator -avd myavd
第三部分:搭建eclipse环境 Eclipse
1.下载eclipse
sudo apt-get install eclipse
2.下载ADT,下载完后重启
a.开始Eclipse,然后选择 Help > Software Updates > Find and Install…. b.对话框出现后,选择 Search for new features to install 点击 Next. c.点击New Remote Site. d.在结果对话框,输入远端站点的名字(如Android Plugin),输入站点如下: https://dl-ssl.google.com/android/eclipse/site.xml点击OK.
3.加载SDK
a.选择 Window > Preferences… 来打开属性面板. (Mac OS X: Eclipse > Preferences) b.从左边面板选择 Android。 c.在主界面上定位SDK 点击 Browse… 然后定位 SDK文件夹. d.点击 Apply, 然后点击 OK.
4.新建一个android工程调试应用。
第四部分:加载android源码为eclipse工程并调试
1. 进入源码目录下的development/ide/eclipse,把android-formatting.xml android.importorder .classpath拷贝到源码目录 2. chmod +x .classpath 赋予执行权限 3. 在eclipse工程菜单 window-->preferences-->java-->Code Style-->Formatter 导入android-formatting.xml文件,organize imports导入android.importorder文件 4. 新建一个java工程,导入android源码 5. 修改eclipse配置,位于android.importorder目录下的eclipse.ini文件,修改-Xms,-Xmx为128和512 -Xms128m -Xmx512m 调试: 1. 退出Eclipse工程 2. 在android源码目录执行 . build/envsetup.sh 3. 启动模拟器 emulator & 4. 等模拟器启动成功后,启动ddms ddms & 5. 选择进程 ,注意一定要选择 6. 启动Eclipse,配置调试信息 7. 设置断点,启动调试
第五部分:添加一个应用为android系统应用
1. 在和系统相同版本的SDK目录下开发自己的android应用 2. 把开发的android工程放到源码的packages/apps/目录下 3. 在工程目录下添加Android.mk文件,修改LOCAL_PACKAGE_NAME :=test001 把工程名指定为自己的工程名,我加载的工程为test001 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := user LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_STATIC_JAVA_LIBRARIES := googlelogin-client LOCAL_PACKAGE_NAME :=test001 LOCAL_CERTIFICATE := shared include $(BUILD_PACKAGE) # Use the folloing include to make our test apk. include $(call all-makefiles-under,$(LOCAL_PATH)) 4. 回到源码目录,然后执行 . build/envsetup.sh 注意sh后面有个空格 5. 执行mmm packages/apps/test001 编译test001.apk包 6. 执行make snod,编译system.img包 7. 执行emulator &就可以在应用程序下看到自己编译的工程了
第六部分: 如何在android源码基础上修改联系人应用,添加自己的activity
1. 首先新建一个android工程,加载自己的java文件和资源文件 2. 在自己的android工程初步调试成功以后,把该工程的java文件,资源文件拷贝到联系人对应的java文件和资源文件目录 3. 然后在linux下执行以下命令,编译人联系人模块,把资源文件编译到联系人目录中 . build/envsetup.sh mmm packages/apps/Contacts 4. 刷新android源码工程,这个时候你就可以在Contacts包目录下看到你新加的资源文件和源文件了,并可以在源码工程下修改代码并直接调试了 5. ?? 为什么不在android源码工程下直接添加源文件和xml资源文件了???? 答:因为我们的android源码工程师以java工程导入的,如果添加android的xml文件的话,java程序无法识别资源R文件,所以我们必须先把需要的
xml资源文件先在linux下编译
6. 在源码工程修改后,则可在linux下再次执行联系人编译命令,并 make snod加载system.img文件,并启动模拟器(emulator &),就可以看到你的修改了。
第7部分:Contacts应用的基本结构
主入口程序:DialtactsActivity.java 启动函数: protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
final Intent intent = getIntent();
fixIntent(intent);
//hide title
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.dialer_activity);
/*初始化tab布局*/
mTabHost = getTabHost();
//设置Tab改变通知
mTabHost.setOnTabChangedListener(this);
// 设置拨号盘Tab标签
setupDialerTab();
// 设置拨打日志Tab标签
setupCallLogTab();
// 设置联系人Tab标签
setupContactsTab();
// 设置最爱的Tab标签
setupFavoritesTab();
//设置当前显示的tab页
setCurrentTab(intent);
/*????*/
if (intent.getAction().equals(UI.FILTER_CONTACTS_ACTI ON)
&& icicle == null) {
setupFilterText(intent);
}
}
by zhangweia 07/19
发表评论
-
什么是组件以及为什么使用组件
2012-07-03 13:42 597因为在编程当中呢 ... -
什么是组件以及为什么使用组件
2012-07-03 12:18 558因为在编程当中呢 ... -
amchart的使用!~
2012-07-02 10:15 791最近公司开发项目 ... -
Mnogosearch
2012-07-02 10:15 725一。Mnogosearch是php的搜索引擎 同datep ... -
用Lisp写网站程序的备忘
2012-07-02 10:14 5571。 使用 hunchentoot 作为网站框架,它的功能 ... -
如何使用registerClassAlias来解决module中使用RemoteObject---第一次访问正常、第二次出错
2012-07-01 09:37 542问题:今天我在Flex的module中使用RemoteOb ... -
Flex4 使用RemoteObject BlazeDS 连接JAVA对象获取数据
2012-07-01 09:36 690使用FLEX4 和 JAVA进行通讯 并和JAVA内置的对 ... -
Flex remoteobject工作原理探讨
2012-07-01 09:36 533Flex访问远程服务都是通过AbstractService ... -
一个用ArrayCollection作为数据格式 读取远程XML绑定到DropDownList例子
2012-07-01 09:36 550这个例子没有使用 XMLListCollection 而是 ... -
一个用ArrayCollection作为数据格式 读取远程XML绑定到DropDownList例子
2012-07-01 09:36 649这个例子没有使用 XMLListCollection 而是 ... -
VS调试项目出现"访问IIS元数据库失败"的267904错误解决方法
2012-06-30 17:53 1025今天重做系统后,新装了VS2008和IIS6.将原来的AS ... -
Linux下ODBC中文乱码解决方法
2012-06-30 17:53 895最近在做一个linux下的系统,基于移植性的考虑(该系统数 ... -
phpmyadmin链接表的附加功能尚未激活的解决方法
2012-06-30 17:53 536phpmyadmin链接表的附加功能尚未激活的解决方法 ... -
u-boot在S3C2440上的移植问题及解决方法集锦(二)
2012-06-30 17:53 669一、移植环境 ... -
linux内核编译过程中出现两个错误的解决方法~!
2012-06-30 17:53 1459/*************************** ...
相关推荐
eclipse3.6+ubuntu9.10配色方案 eclipse3.6+ubuntu9.10配色方案 eclipse3.6+ubuntu9.10配色方案
ubuntu9.10的用户指南汉化包,deb格式.
先说一下安装环境,我的电脑分为4个盘:C(NTFS格式,Windows XP系统)、D、E、F(这三个是FAT32格式),我把Ubuntu9.10装在E盘,E盘事先被清空。 第一步:把ubuntu-9.10-desktop-i386.iso 文件拷贝到非安装盘,比如...
Ubuntu9.10建立交叉编译环境arm-linux-gcc-4.3.2
很详细的 Ubuntu 9.10 图解安装教程
ubuntu910界面汉化安装包,deb格式。由于包的相互依赖,需用如下命令安装: #dpkg -i language-pack-gnome-zh-hans_1%3a9.10+20091022_all.deb language-pack-gnome-zh-hans-base_1%3a9.10+20091022_all.deb #dpkg -...
ubuntu 智能拼音安装方法(个人比较中意这个输入法)
Win 7 与 Ubuntu9.10系统安装顺序 (1)Win7 (2)Ubuntu9.10,注意在安装步骤第7步的时候,点击高级按钮,选择安装启动器引导设备的位置为你手动分区的那个光盘。 (3)登录win7(此时系统直接进入win7的),将此...
ubuntu9.10的源,用于更新; Archive.ubuntu.com更新服务器(欧洲,此为官方源,电信网通用户使用): deb http://archive.ubuntu.com/ubuntu/ karmic main restricted universe multiverse deb ...
ubuntu910的ibus输入法,由于附件大小的限制,分开成两个资源上传.
硬盘安装 windows 7 和 ubuntu 9.10 双系统 Windows 7 和 ubuntu 都已经发布了,想体验一下。 Windows 7 已经安装了,本来想用 wubi 安装 ubuntu ,担心 ubuntu 系统性能不好,使用虚拟机安装吧,也是担心同样的...
ubuntu 9.10网易最快的源 ubuntu 9.10网易最快的源
安装 Ubuntu 9.10 全过程视频教程
ubuntu 9.10更新源(速度最快的) ubuntu 9.10更新源(速度最快的) ubuntu 9.10更新源(速度最快的) ubuntu 9.10更新源(速度最快的)
步骤很详细,我本人已经安装成功,初次安装的新手,找上面的操作,保证OK!
用虚拟机在移动硬盘上安装Ubuntu 9.10 视屏
Ubuntu 9.10 安装 Mediawiki 脚本
Ubuntu icons svg files Ubuntu9.10
Ubuntu 9.10 拨号错误解决方法
ubuntu9.10上openoffice界面的汉化包,deb格式.