第一部分:编译环境的安装和编译
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-06 09:51 945这里提供除原文之 ... -
正则表达式regexp_like regexp_replace regexp_substr
2012-07-06 09:45 1236regexp_like regexp_like函数的基本构 ... -
asp 页面中使用正则表达式
2012-07-06 09:37 615RegExp就是建立正则 ... -
遮罩的使用
2012-07-06 09:30 648有N个按钮又不想其导航栏出现烦人的滚动条。 解决方法: ... -
数据库组件 Hxj.Data (三十)(Asp.Net 页面自动赋值与取值)
2012-07-05 20:45 645... -
Swing组件集合的事件处理(三)
2012-07-03 13:43 809除了基本的事件委 ... -
flex--LineChart
2012-07-02 10:38 568最近工作上用到了linechart,在网上查的资料还是非常 ... -
Flex4与java通信(二、与servlet通信)
2012-07-02 10:38 511说明:这里介绍使用URLRequest+URLLoader ... -
flex的mask处理
2012-07-02 10:38 602在做公司一个flash播放器时候,需要在一个swf中动态加 ... -
Flex 接入 WebService
2012-07-02 10:38 644因工作需要,要学会 Flex接入 WebService;在 ... -
[tamarin系列之9] 在线的eval
2012-07-01 00:16 553文章分类:Java编程 我们先做一个实验: 1、构建 ... -
adobe Air 小玩意程序:加载百度随便听听
2012-07-01 00:16 591今天,我承认会有一点偷懒,在写微博的程序的时候,忽然 ... -
Embed
2012-07-01 00:16 724Flex 软件中经常需要使用一些外部的资源,如图片、声音、 ... -
成功使用ArcGIS API for iOS加载Google地图
2012-07-01 00:16 792终于能够使用ArcGIS API for iOS加载Goo ...
相关推荐
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格式.