kernel下载,编译

来源:互联网 发布:网络大电影分成协议书 编辑:程序博客网 时间:2024/05/16 14:15

http://www.byywee.com/page/M0/S661/661050.html

信赖很多下载过内核的人都对这个很熟悉
git clone git://android.git.kernel.org/kernel/common.git kernel
然则这是在以前,如今若是这么履行的话,会显示如下内容
Initialized empty Git repository in /home/star/working/kernel/.git/
android.git.kernel.org[0: 149.20.4.77]: errno=Connection refused
fatal: unable to connect a socket (Connection refused)
经由过程浏览器输入http://android.git.kernel.org/,发明该网站已经被重定向为http://source.android.com/source/downloading.html
可以在该页面的最后发明内核的下载办法。

下面我们介绍一下Android源码下载的步调。

工作景象:

操纵体系:Ubuntu 10.04 或 Ubuntu10.10

git法度 :1.7.0.4 或 1.7.1

转载请注明出处:http://blog.csdn.net/pku_android

办法一:
1.1 初始化安装景象
参考网页http://source.android.com/source/initializing.html
首要要做的就是安装jdk和安装一些软件包
¥ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
libxml2-utils
若是已经安装了,就不许要这步了

1.2 无论下载内核和源码,都须要进行如下操纵
参考网页http://source.android.com/source/downloading.html
¥ mkdir ~/bin
¥ PATH=~/bin:¥PATH
¥ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
¥ chmod a+x ~/bin/repo
建树一个文件夹,以便下载的内容保存此中
¥ mkdir WORKING_DIRECTORY
¥ cd WORKING_DIRECTORY

1.3 内核下载
¥ git clone https://android.googlesource.com/kernel/common.git kernel
号令行最后面的kernel的意思是保存在这个文件夹下,所以可所以任何名字,该文件夹不须要本身去创建,最后的这个不写也没题目
若是想下载其他版本的内核
¥ git clone https://android.googlesource.com/kernel/goldfish.git
¥ git clone https://android.googlesource.com/kernel/msm.git
¥ git clone https://android.googlesource.com/kernel/omap.git
¥ git clone https://android.googlesource.com/kernel/samsung.git
¥ git clone https://android.googlesource.com/kernel/tegra.git
下载过程中,会有如下信息,速度快慢取决于网速了。
Initialized empty Git repository in /home/star/kernel/kernel/.git/
remote: Counting objects: 40, done
remote: Counting objects: 2073952, done
remote: Finding sources: 100% (208/208)
remote: Getting sizes: 100% (88/88)
remote: Compressing objects: 100% (2/2)
remote: Total 2073863 (delta 1735363), reused 2073862 (delta 1735363)
Receiving objects: 100% (2073863/2073863), 427.93 MiB | 318 KiB/s, done.
Resolving deltas: 100% (1735382/1735382), done.
在我下载的过程中,呈现了如下题目
error: RPC failed; result=56, HTTP code = 2002 MiB | 23 KiB/s
到如今我也不清楚是因为什么原因导致的,猜测
1.1中所说的工作,都做了吗?我发明有一些安装包尚未安装,安装之。
或者,可能是收集题目,反复履行一下,会发明并不是在同一个处所呈现这个题目的,说不定哪次就成功了
或者,用别人的电脑下载一下(固然办法是我发明的,可是并不是我第一个下载成功的,我碰到了RPC failed,后来让同窗测验测验,成功,之后我也测验测验了,在把所须要的安装包都安装后,也成功)

1.4 调换内核版本
因为在1.3中我写的是kernel,这是可以看到当前目次下呈现了一个kernel文件夹
¥ cd kernel/
¥ ls
发明没有任何内容
查看当前内核版本,master,不知道是什么意思
¥ git branch
* master
查看所有可用内核版本
¥ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/android-2.6.39
remotes/origin/android-3.0
remotes/origin/master
可以看到今朝只供给了少数的版本,只有2.6.39和3.0,比如我要下载2.6.39
¥ git checkout -b android-2.6.39 origin/android-2.6.39
Switched to a new branch ""android-2.6.39""
该号令的android-2.6.39指的是分支的名字,其实是可以随便取的,关键是origin/android-2.6.39,要对应git branch -a号令显示的remotes后面的内容
完成后,查询当前分支
¥ git branch
* android-2.6.39
master
¥ ls
arch Documentation init lib README sound
block drivers ipc MAINTAINERS REPORTING-BUGS tools
COPYING firmware Kbuild Makefile samples usr
CREDITS fs Kconfig mm scripts virt
crypto include kernel net security
会看到忽然呈现很多文件夹,这就是内核了
因为误操纵
比如¥ git checkout -b android-2.6.39 origin/android-2.6.39,只是输入¥ git checkout -b android-2.6.39,这时,会获得一个空的分支
¥ git branch -a
* android-2.6.39
master
remotes/origin/HEAD -> origin/master
remotes/origin/android-2.6.39
remotes/origin/android-3.0
remotes/origin/master
若是再次履行
¥ git checkout -b android-2.6.39 origin/android-2.6.39
fatal: git checkout: branch android-2.6.39 already exists
一种办法,就是给把-b后面的android-2.6.39改为其他名字,然则这个有题目的分支android-2.6.39还是会存在的
查看¥ git branch --help,找到分支删除的号令
¥ git branch -D android-2.6.39
error: Cannot the branch ""android-2.6.39"" which you are currently on.
须要切换分支,假设也存在android-3.0,当然也可以切换为master或者其他存在的分支,¥ git branch -a查看分支
¥ git checkout android-3.0
Checking out files: 100% (37131/37131), done.
Switched to branch ""android-3.0""
¥ git branch -D android-2.6.39
Deleted branch android-2.6.39 (was fe8bf45).

转载请注明出处:http://blog.csdn.net/pku_android

办法二
2.1 参考1.1和1.2

2.2 类似于下载Android源码的过程,先履行如下号令
¥ repo init -u https://android.googlesource.com/platform/manifest
在这一步还须要用到gmail的邮箱
鄙人载Android源码的过程中,并不会下载kernel,那如何才干既下载源码,又下载kernel呢
参考网页http://elinux.org/Android_Kernel_Download
a kernel git tree并没有被默认的Android manifest file引用
既然没有引用,那就加上它
批改.repo/manifest.xml(今朝的目次为1.2中已经建树的WORKING_DIRECTORY)
¥ vim .repo/manifest.xml
加上这条语句
<project path="kernel/common" name="kernel/common" revision="android-2.6.39"/>
地位我感觉和其它的project选项并列即可。
版本号参考1.4,可能只能下载2.6.39和3.0

2.3 下载源码和内核
¥ repo sync
漫长的守候
若是我只想下载内核呢
很简单,批改2.2提到的文件.repo/manifest.xml,把所有project标签都删除,再添加
<project path="kernel/common" name="kernel/common" revision="android-2.6.39"/>

www.wak99.com

转载请注明出处:http://blog.csdn.net/pku_android


----------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • HOHO
  • 分享
  • 投票
  • 测试
  • 礼物
  • 网页游戏

分享

  • 热门分享
  • 最新分享
  • 好友的分享
  • 我的分享

   yinchao1217的分享

  

android获取源代码、编译、命令

http://source.android.com/porting/build_system.html

http://source.android.com/porting/build_cookbook.html (Build Cookbook,Android.mk中变量含义)

http://source.android.com/source/git-repo.html(using git and repo)


~~~my~~~

1. 新建一个目录下载源码:
mkdir eclair-dev && cd eclair-dev
repo init -u git://192.168.3.120/android2.1/platform/manifest.git -b eclair-dev
repo sync

2. 取出开发分支
repo forall -c git checkout korg/eclair-0901 -b eclair-0901

~~~my~~~

正确的编译android sdk:

cd myandroid
.  ./build/envsetup.sh
lunch sdk-eng
make sdk

//或者:
make PRODUCT-sdk-sdk

这样就会在out/host/linux-x86/sdk/目录下生成跟google 发布的sdk包一样的目录,就可以使用自己的sdk开发包了。

make snod  //生成system.img

make sdk showcommands  //显示编译时的详细信息

make systemimage    //会编译framework和package

运行模拟器:
. build/envsetup.sh
lunch 1 或者 lunch sdk-eng          //加载运行环境
export PATH=/home/vnify/software/jdk1.5.0_04/bin/:$PATH //设置java,我的默认为1.6
export ANDROID_SDK_ROOT=./out/host/linux-x86/sdk/android-sdk_eng.vnify_linux-x86/
emulator -avd wvga800 -skin WVGA800  //运行指定的虚拟设备和皮肤

调试:
ddms &

加速编译:export USE_CCACHE=1

参考http://source.android.com/porting/build_system.html#androidSourceSetupBuildingCodeBase

You can also import android source code into eclipse:cd android_src && cp cp development/ide/eclipse/.classpath ./Then import existing project.Ctrl-Shift-o = Organize imports Ctrl-Shift-t = load class by name Ctrl-Shift-r = load non-class resource by name Ctrl-1 = quick fix Ctrl-e = Recently viewed files Ctrl-space = auto complete Shift-Alt-r = refactor:rename Shift-Alt-v = refactor:move

~~~my~~~


1、Git的安装
在Ubuntu 8.04上安装git只要设定了正确的更新源,然后使用apt-get就可以了,有什么依赖问题,就让它自己解决吧。其中cURL是一个利用URL语法在命令行下工作的文件传输工具,会在后面安装Repo的时候用到。
sudo apt-get install git-core curl

2、安装Repo
首先确保在当前用户的主目录下创建一个/bin目录(如果没有的话),然后把它(~/bin)加到PATH环境变量中
接下来通过cURL来下载Repo脚本,保存到~/bin/repo文件中
curl http://android.git.kernel.org/repo >~/bin/repo

别忘了给repo可执行权限
chmod a+x ~/bin/repo

3、初始化版本库
如果是想把Android当前主线上最新版本的所有的sourcecode拿下来,我们需要repo的帮助。
先建立一个目录,比如~/android,进去以后用repo init命令即可。
repo init -u git://android.git.kernel.org/platform/manifest.git
这个过程会持续很长的时间(至少可以好好睡一觉),具体要多少时间就取决于网络条件了
最后会看到 repo initialized in /android这样的提示,就说明本地的版本库已经初始化完毕,并且包含了当前最新的sourcecode。

如果想拿某个branch而不是主线上的代码,我们需要用-b参数制定branch名字,比如:
repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake

另一种情况是,我们只需要某一个project的代码,比如kernel/common,就不需要repo了,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git
这也需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。

如果需要某个branch的代码,用git checkout即可。比如我们刚刚拿了kernel/common.get的代码,那就先进入到common目录,然后用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android-goldgish-2.6.27同步。我们可以通过git branch来列出本地的所有分支。

4、同步版本库
使用rerpo sync命令,我们把整个Android代码树做同步到本地,同样,我们可以用类似
repo sync project1 project2 …
这样的命令来同步某几个项目

如果是同步Android中的单个项目,只要在项目目录下执行简单的
git pull
即可。

5、通过GitWeb下载代码
另外,如果只是需要主线上某个项目的代码,也可以通过GitWeb下载,在shortlog利用关键字来搜索特定的版本,或者找几个比较新的tag来下载还是很容易的。

-----------------------------------

android编译全过程

2009-11-05 15:00
本 文主要参考官方文档(http://source.android.com/download)和网上相关资料(http: //blog.csdn.net/HKjinzhao/archive/2009/03/18/4002326.aspx,http: //www.williamhua.com/2009/04/30/how-to-build-android-15-kernel-image/)。网 上的资料对于andorid的最新代码有的已经过时,或者有错误,这份文档本人亲自实验,保证可行。另本人没有使用eclipse的习惯,所以并没有做 eclipse的相关配置。

编译环境:ubuntu9.10,widnows平台目前不被支持。

1)安装必要的软件环境
$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
官方推荐的就是上面这些,如果在编译过程中发现某些命令找不到,就apt-get它。可能需要的包还有:
$ sudo apt-get install make
$ sudo apt-get install gcc
$ sudo apt-get install g++
$ sudo apt-get install libc6-dev

$ sudo apt-get install patch
$ sudo apt-get install texinfo

$ sudo apt-get install zlib1g-dev
$ sudo apt-get install valgrind
$ sudo apt-get install python2.5(或者更高版本)
需要注意的是,官方文档说如果用sun-java6-jdk可出问题,得要用sun-java5- jdk。经测试发现,如果仅仅make(make不包括make sdk),用sun-java6-jdk是没有问题的。而make sdk,就会有问题,严格来说是在make doc出问题,它需要的javadoc版本为1.5。
因此,我们安装完sun-java6-jdk后最好再安装sun-java5-jdk,或者只安装sun-java5-jdk。这里sun-java6- jdk和sun-java5-jdk都安装,并只修改javadoc.1.gz和javadoc。因为只有这两个是make sdk用到的。这样的话,除了javadoc工具是用1.5版本,其它均用1.6版本:
$ sudo apt-get install sun-java6-jdk
修改javadoc的link
$ cd /etc/alternatives
$ sudo rm javadoc.1.gz
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
$ sudo rm javadoc
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc

2)设置环境变量
$ emacs ~/.bashrc
在.bashrc中新增或整合PATH变量,如下:
#java 程序开发/运行的一些环境变量
JAVA_HOME=/usr/lib/jvm/java-6-sun
JRE_HOME=${JAVA_HOME}/jre
export ANDROID_JAVA_HOME=$JAVA_HOME
export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
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};
保存后,同步更新:
source ~/.bashrc

3)安装repo(用来更新android源码)
创建~/bin目录,用来存放repo程序,如下:
$ cd ~
$ mkdir bin
并加到环境变量PATH中,在第2步中已经加入
下载repo脚本并使其可执行:
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo

4)初始化repo
repo是android对git的一个封装,简化了一些git的操作。
创建工程目录:
$ mkdir android
$ cd android
repo初始化
$ repo init -u git://android.git.kernel.org/platform/manifest.git
在此过程中需要输入名字和email地址。初始化成功后,会显示:
repo initialized in /android
在~/android下会有一个.repo的隐藏目录。

5)同步源代码
$ repo sync
这一步要很久很久

6)编译android源码,并得到~/android/out目录
$ cd ~/andoird
$ make PRODUCT-sdk-sdk
这一过程很久
或者:
.  ./build/envsetup.sh
lunch sdk-eng
make sdk

7)在模拟器上运行编译好的android
编译好android之后,emulator在~/android/out/host/linux-x86/bin 下,ramdisk.img,system.img和userdata.img则在~/android/out/target/product /generic下
$ cd ~/android/out/host/linux-x86/bin
增加环境变量
$ emacs ~/.bashrc
在.bashrc中新增环境变量,如下
#java 程序开发/运行的一些环境变量
export ANDROID_PRODUCT_OUT=~/android/out/target/product/generic
ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};

最后,同步这些变化:
$ source ~/.bashrc
$ cd ~/android/out/target/product/generic
$ emulator -system system.img -data userdata.img -ramdisk ramdisk.img
最后进入android桌面,就说明成功了。

8)编译模块
android中的一个应用程序可以单独编译,编译后要重新生成system.img
在源码目录下执行
$ . build/envsetup.sh (.后面有空格)
就多出一些命令:
- 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.
可以加—help查看用法
我们可以使用mmm来编译指定目录的模块,如编译联系人:
$ mmm packages/apps/Contacts/
编完之后生成两个文件:
out/target/product/generic/data/app/ContactsTests.apk
out/target/product/generic/system/app/Contacts.apk
可以使用
$ make snod
重新生成system.img,再运行模拟器

9)编译SDK
直接执行make是不包括make sdk的。make sdk用来生成SDK,这样,我们就可以用与源码同步的SDK来开发android了。

a)修改/frameworks/base/include/utils/Asset.h
‘UNCOMPRESS_DATA_MAX = 1 * 1024 * 1024’ 改为 ‘UNCOMPRESS_DATA_MAX = 2 * 1024 * 1024’
原因是eclipse编译工程需要大于1.3M的buffer;

b)编译ADT。
由于本人不使用eclipse,所以没有进行这步;

c)执行make sdk。
注意,这里需要的javadoc版本为1.5,所以你需要在步骤1中同时安装sun-java5-jdk
$ make sdk
编译很慢。编译后生成的SDK存放在out/host/linux-x86/sdk/,此目录下有android-sdk_eng.xxx_linux- x86.zip和android-sdk_eng.xxx_linux-x86目录。android-sdk_eng.xxx_linux-x86就是 SDK目录
实际上,当用mmm命令编译模块时,一样会把SDK的输出文件清除,因此,最好把android-sdk_eng.xxx_linux-x86移出来
此后的应用开发,就在该SDK上进行,所以把7)对于~/.bashrc的修改注释掉,增加如下一行:
export PATH=${PATH}:~/android/out/host/linux-x86/sdk/android-sdk_eng.xxx_linux-x86/tools
注意要把xxx换成真实的路径;

# make PRODUCT-sdk-sdk


d)关于环境变量、android工具的选择
目前的android工具有:
A、我们从网上下载的SDK,如果你下载过的话( tools下有许多android工具,lib/images下有img映像)
B、我们用make sdk编译出来的SDK( tools下也有许多android工具,lib/images下有img映像)
C、我们用make编译出来的out目录( tools下也有许多android工具,lib/images下有img映像)
那么我们应该用那些工具和img呢?
首先,我们一般不会用A选项的工具和img,因为一般来说它比较旧,也源码不同步。其次,也不会用C选项的工具和img,因为这些工具和img没有经过 SDK的归类处理,会有工具和配置找不到的情况;事实上,make sdk产生的很多工具和img,在make编译出来out目录的时候,已经编译产生了,make sdk只是做了copy而已。

e)安装、配置ADT
略过;

f)创建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

10)编译linux内核映像
a)准备交叉编译工具链
android代码树中有一个prebuilt项目,包含了我们编译内核所需的交叉编译工具。

b)设定环境变量
$ emacs ~/.bashrc
增加如下两行:
export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
export ARCH=arm
保存后,同步变化:
$ source ~/.bashrc

c)获得合适的内核源代码
$ cd ~/android
获得内核源代码仓库
$ git clone git://android.git.kernel.org/kernel/common.git   kernel
$ cd kernel
$ git branch
显示
* android-2.6.27
说明你现在在android-2.6.27这个分支上,也是kernel/common.git的默认主分支。
显示所有head分支:
$ git branch -a
显示
* android-2.6.27
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/android-2.6.25
remotes/origin/android-2.6.27
remotes/origin/android-2.6.29
remotes/origin/android-goldfish-2.6.27
remotes/origin/android-goldfish-2.6.29
我们选取最新的android-goldfish-2.6.29,其中goldfish是android的模拟器模拟的CPU。
$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
$ git branch
显示
android-2.6.27
* android-goldfish-2.6.29
我们已经工作在android-goldfish-2.6.29分支上了。

d)设定交叉编译参数
打开kernel目录下的Makefile文件,把CROSS_COMPILE指向刚才下载的prebuilt中的arm-eabi编译器
CROSS_COMPILE ?= arm-eabi-

LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
$(call ld-option, -Wl$(comma)–build-id,))
这一行注释掉,并且添加一个空的LDFLAGS_BUILD_ID定义,如下:
LDFLAGS_BUILD_ID =

e)编译内核映像
$ cd ~/android/kernel
$ make goldfish_defconfig
$ make

f)测试生成的内核映像
$ emulator -avd myavd -kernel ~/android/kernel/arch/arm/boot/zImage


-----------------------------------
Android tools

======= adb =======
#运行monkey程序,进行随机输入测试
$ adb shell monkey -v -p com.android.email 500

#查看system's log buffers
$ adb logcat

#Viewing stdout and stderr
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start

#view a log buffer containing radio and telephony messages
$ adb logcat -b radio         # radio, events, main is default

#Filtering Log Output
$ adb logcat
ActivityManager:IMyApp:D*:S

# 向当前activity中的EditText输入文字
$ adb shell input text "stringtoinput..."



======= emulator =======
#运行模拟器
$ emulator -system system.img.orig -data userdata.img -ramdisk ramdisk.img @my_avd
$ emulator @my_avd

#运行模拟器,并显示Linux kernel启动时的message
$ emulator -show-kernel @my_avd

#enable root shell on current terminal
$ emulator -shell @my_avd

# -wipe-data delete the emulator's user-data partition
emulator -wipe-data @my_avd


emulator -partition-size 256 -system D:\rom\system.img -data
d:\rom\userdata.img -kernel d:\rom\kernel-qemu -ramdisk
d:\rom\ramdisk.img -sdcard D:\android\sdk\1.6\sd64.img -cpu-delay 0
-scale 160dpi -dpi-device 240 -skin WVGA800 -skindir
D:\android\sdk\1.6\platforms\android-2.1\skins -memory 512 -prop
dalvik.vm.heapsize=32m

具体解释一下:
-partition-size 可以设置分区的大小,是system和data两个分区,一起设置
-cpu-delay 可以模拟速度慢的cpu
-scale 可以缩小或扩大其显示dpi
-dpi-device 可以设置hdpi或者mdpi等
-skin必须配合-skindir使用
-memory是设置内存大小,缺省是96m,如果不设置大一些,大家都很看到不停地kill and start
-prop dalvik.vm.heapsize=32m 这个是非常重要的设置,在我们的hdpi下,不设置成24m+就会系统无法启动




======= trace =======
# tracing
// start tracing to "/sdcard/calc.trace", onCreate()
Debug.startMethodTracing("calc");
// ...
// stop tracing, onDestroy()
Debug.stopMethodTracing();

adb pull /sdcard/calc.trace /tmp
traceview /tmp/calc



# 按F9启动/停止trace记录,在~/.android/avd/my_avd.avd/traces/目录下可以找到trace文件
$ emulator -trace trace_log
# 进入android源代码目录
$ cd $ANDROID_HOME
$ source build/envsetup.sh
# 运行envsetup.sh中的tracedmdump函数
$ tracedmdump ~/.android/avd/my_avd.avd/traces/trace_log
会在~/.android/avd/my_avd.avd/traces/trace_log下产生dmtrace和dmtrace.html文件


======= apk =======
# 将apk/目录下的所有文件打包成apk
$ apkbuilder jfo.apk -rf apk/
# 或者使用aapt
$ aapt p -F jfo2.apk apk/

# 打印APK包信息
$ aapt dump badging jfo.apk

# add a file
$ aapt a jfo.apk libcharset.so
# remove a file
$ aapt r jfo.apk libcharset.so


======= hierarchyviewer=======
# provides a visual representation of the layout's View hierarchy (the Layout View)
$ hierarchyviewer



======= astyle =======
# 代码格式化工具 astyle
find ./ -name *.java -exec astyle--style=ansi {} \;




======= repo  =======




$ repo  forall  -c "echo"

$ repo init -u git://192.168.1.1/android2.2/platform/manifest.git -b froyo-dev
$ repo sync  -j5
$ repo start  froyo-dev  --all    # checkout froyo-dev branch for all projects, froyo-dev branch will track remote branch

$ repo start  froyo-dev  frameworks/base

 



======= git  =======

git push ssh://test@192.168.1.100:29418/android2.2/platform/packages/apps/Settings HEAD:refs/for/froyo-dev
git config remote.origin.uri git://192.168.1.100/android2.1/platform/manifest.git

git remote add remote_repo git://192.168.1.100/android2.1/platform/packages/apps/Settings

git fetch remote_repo

git push remote_repo master:new_remote_branch    #将本地的master分支push到远程的new_remote_branch(新建)分支

git push remote_repo  :new_remote_branch    #将删除远程的new_remote_branch分支

 

How to edit incorrect commit messages?
$ git rebase –interactive <after-this-commit-id>
在跳出界面选择需要修改的commit(将pick改为edit)

$ git commit –amend
修改相应commit

$ git rebase –continue

----------------------

$ git cherry -v korg/gingerbread

列出当前分支与korg/gingerbread的差异

git cherry [-v] [<upstream> [<head> [<limit>]]]

       Every commit that doesn’t exist in the <upstream> branch has its id (sha1) reported, prefixed by a symbol. The ones that
       have equivalent change already in the <upstream> branch are prefixed with a minus (-) sign, and those that only exist in
       the <head> branch are prefixed with a plus (+) symbol:

 

======= fastboot  =======
$fastboot flash system system.img
$fastboot flash userdata data.img

$fastboot flash boot boot.img

$fastboot -w     # erase userdata and cache

$fastboot reboot



~~~~
来自: http://hi.baidu.com/j%5Ffo/blog/item/c4b92ff5ad15cc29bd3109ec.html
  
来自:
j_fo
第一分享:
yinchao1217
时间:
2010-09-09 13:15
评论:
10
投票:
3次
本贴分享:
7
累计分享:
10
共有3人发表观点
  • 小妹Q:2580941237
  • 欲女交友 tao.bb/Bh0AY
...或者输入其他标签词:

yinchao1217的 博客 相关分享:

  • 教你玩电脑——CSS、HTML、JS、XML的关系

  • scanf杂谈

  • 【转载】IO端口和IO内存

  • 深入理解linux系统下proc文件系统内容

 


2012年02月02日 13:01奴家等你很久了

有性趣的哥哥来人家空间逛逛~有你需要的~人家很期待哟~

2012年02月07日 08:43liuguo_2011

android 源代码编译

2012年02月09日 19:54kmfpzq31

█████分享一个快速找—夜情的绝招██████...我实验过,成功率相当高。曾拿出来给某网友用过,当天他就给我反馈说效果相当好。就是在某处留个信息,然后就等着,绝对能成功。倘若你也想找个同城寂寞的女孩出来爱爱,就到这里 t.cn/zOzkIU8【复制能打开】去留个信息,很快会有异性联系你。如果你想更快一点,那你就联系别人。方法我只能说到这里,不能再具体了。如果都知道了,一是天下就乱了,二是用的人太多了,比如说几万几十万人都用的话,那估计效果就不好了。53198510

2012年02月11日 04:54qrmlwv95

一个快速找—夜情的绝招还在一个人看爱情动作片吗 ?要不要找个情人实战? 倘若你想找个同城寂寞的女孩出来 爱爱 就到这里 t.cn/zOzkIU8 【复制能打开】去留个信息,然后就等着,15天之内保证你找到. 如果你想更快一点,那你就联系别人, 主动一点几个小时你就能看到满意的结果。 此方法经无数朋友试验过,均屡试不爽,而且用的人越多效果越好52910939

2012年03月05日 08:43ygnddg40

████分享一个快速找情人的绝招████...我实验过,成功率相当高。曾拿出来给某网友用过,当天他就给我反馈说效果相当好。就是在某处留个信息,然后就等着,绝对能成功。倘若你也想找个同城寂寞的女孩出来爱爱,就到这里 2.gy/66666【复制能打开】去留个信息,很快会有异性联系你。如果你想更快一点,那你就联系别人。方法我只能说到这里,不能再具体了。如果都知道了,一是天下就乱了,二是用的人太多了,比如说几万几十万人都用的话,那估计效果就不好了。54095547

2012年03月05日 14:15hjpuvf62

████分享一个快速找情人的绝招████...我实验过,成功率相当高。曾拿出来给某网友用过,当天他就给我反馈说效果相当好。就是在某处留个信息,然后就等着,绝对能成功。倘若你也想找个同城寂寞的女孩出来爱爱,就到这里 2.gy/66666【复制能打开】去留个信息,很快会有异性联系你。如果你想更快一点,那你就联系别人。方法我只能说到这里,不能再具体了。如果都知道了,一是天下就乱了,二是用的人太多了,比如说几万几十万人都用的话,那估计效果就不好了。54059373

2012年03月09日 23:42iagiwr07

████分享一个快速找情人的绝招████...我实验过,成功率相当高。曾拿出来给某网友用过,当天他就给我反馈说效果相当好。就是在某处留个信息,然后就等着,绝对能成功。倘若你也想找个同城寂寞的女孩出来爱爱,就到这里 2.gy/66666【复制能打开】去留个信息,很快会有异性联系你。如果你想更快一点,那你就联系别人。方法我只能说到这里,不能再具体了。如果都知道了,一是天下就乱了,二是用的人太多了,比如说几万几十万人都用的话,那估计效果就不好了。55137526

2012年03月20日 11:25wcwqla55

████分享一个快速找情人的绝招████...我实验过,成功率相当高。曾拿出来给某网友用过,当天他就给我反馈说效果相当好。就是在某处留个信息,然后就等着,绝对能成功。倘若你也想找个同城寂寞的女孩出来爱爱,就到这里 2.gy/66666【复制能打开】去留个信息,很快会有异性联系你。如果你想更快一点,那你就联系别人。方法我只能说到这里,不能再具体了。如果都知道了,一是天下就乱了,二是用的人太多了,比如说几万几十万人都用的话,那估计效果就不好了。55846178

2012年04月13日 20:50bqwmuk90

████分享一个快速找情人的绝招████...我实验过,成功率相当高。曾拿出来给某网友用过,当天他就给我反馈说效果相当好。就是在某处留个信息,然后就等着,绝对能成功。倘若你也想找个同城寂寞的女孩出来爱爱,就到这里 2.gy/66666【复制能打开】去留个信息,很快会有异性联系你。如果你想更快一点,那你就联系别人。方法我只能说到这里,不能再具体了。如果都知道了,一是天下就乱了,二是用的人太多了,比如说几万几十万人都用的话,那估计效果就不好了。57982107

2012年04月19日 14:08voqskj09

████分享一个快速找情人的绝招████...我实验过,成功率相当高。曾拿出来给某网友用过,当天他就给我反馈说效果相当好。就是在某处留个信息,然后就等着,绝对能成功。倘若你也想找个同城寂寞的女孩出来爱爱,就到这里 2.gy/66666【复制能打开】去留个信息,很快会有异性联系你。如果你想更快一点,那你就联系别人。方法我只能说到这里,不能再具体了。如果都知道了,一是天下就乱了,二是用的人太多了,比如说几万几十万人都用的话,那估计效果就不好了。57982107

 
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu