Ubuntu下Android开发——配置环境,刷机,push

一.配置环境变量
1.1.sudo apt-get install openjdk-7-jdk     //将会安装上jdk
2.安装相关的软件:
  sudo apt-get install build-essential make gcc g++ libc6-dev patch texinfo libncurses5-dev git-core gnupg flex bison gperf libsdl1.2-dev  libesd0-dev  build-essential zip curl libncurses5-dev zlib1g-dev valgrind libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 gstreamer0.10-plugins-base:i386 gstreamer0.10-plugins-good:i386 libxml2-utils
3.配置环境变量
  修改:vim ~/.bashrc   
  文档末尾添加:unset JAVA_TOOL_OPTIONS
4.修改完成后 source ~/.bashrc


二.下载Android源码
1.开始下载源码,从不同的服务器下载,指令不同(此处自行百度)。
   mkdir work
   mkdir android-5.1.1_r1_folio
   cd android-5.1.1_r1_folio/
   curl http://10.100.207.254:8080/static/repo > ./repo-conn  //下载repo脚本到到本地
   chmod +x repo-conn                             //给repo脚本加权限
   sudo mv repo-conn /usr/local/bin/                          
   ssh-keygen
   cd .ssh/
   vi config
   ssh conntech
   cat id_rsa.pub
   ssh conntech
   repo-conn init -u conntech:manifest.git -b android-5.1.1_r1_folio
   git config --global user.email "renss@litsoft.com.cn"
   git config --global user.name "renss"
   repo-conn init -u conntech:manifest.git -b android-5.1.1_r1_folio
   repo-conn sync


三.首次编译整套源码
1.准备
    1. source build/envsetup.sh  //这样会列出很多include....
    2. lunch //会列出很多设备的名称,必须的选一种设备型号才可以编译
    3. 22 (代表google的n5手机)//aosp_hammerhead-userdebug
    4. make update-api //首先编译api
    5. make -j8 //正式开始编译 后面的数字表示使用系统几核进行编译,其实不管数字有多大使用的核数肯定不超过机器的内核数量
备注:首次编译的时间比较长,如果编译一次后,修改后再次编译的话就会快很多,编译完成后产看out/target/product/hammerhead(这是我刚才在上面选择的设备型号)/
      如果在此目录下,生成了:boot.img,cache.img,recovery.img,system.img,userdata.img等相关文件的话,基本上可以断定编译成功了。


四.配置ADB环境变量
----------start------------(这部分,在同一台电脑上只需要执行一次即可!!!)
1. lsusb     //查看usb使用情况  : 18d1:4ee2
2.sudo gedit /etc/udev/rules.d/70-android.rules    //新建并且编辑这个文件
SUBSYSTEM=="usb", ATTRS{idVendor}=="230b", ATTRS{idProduct}=="0100",MODE="0666"    //写入这句话,nexus所对应的ATTRS为18d1  idProduct对应为4ee1

3. sudo chmod a+rx /etc/udev/rules.d/70-android.rules //设置权限
4.sudo service udev restart   //重启udev
5.修改~/.bashrc中的环境变量ANDROID_PRODUCT_OUT为:
export ANDROID_PRODUCT_OUT=~/work/android-5.1.1_r1/out/target/product/hammerhead    //注意路劲写adb成自己的真实路径
export PATH=$PATH:~/work/android-5.1.1_r1_folio/out/host/linux-x86/bin
6.source ~/.bashrc

-----------end--------------------



五.刷机
1.source build/envsetup.sh   //必须先进入到android源码的目录下面在开始执行此指令
2.lunch
3.选择要刷机的手机对应的编号
4. adb reboot bootloader  
5. fastboot flashall -w
result:刷机完成后会显示:
    .....
    rebooting...

六.以后单独编译某个模块,使用Push的方式推到手机即可(比如编译SystemUI模块)  
1.  mmm frameworks/base/packages/SystemUI/       //通常此目录只包含一个模块,而且这个模块包含(.mk文件,说明他是可单独编译的)
2.  最后terminal中会显示Install:out/target/product/hammerhead/system/priv-app/SystemUI/SystemUI.apk

接下来需要替换你手机中的SystemUI.apk
3. ***就在自己的项目下(我是cplus项目)
   --->1.adb root
   --->2.adb remount
   --->3.adb push out/target/product/hammerhead/system/priv-app/SystemUI/SystemUI.apk system/priv-app/SystemUI
   
   
七.如果编译的是frameworks/base下的整个文件(和第六步差不多)
1.  mmm frameworks/base/    
2.  最后terminal中会显示Install:out/target/product/hammerhead/system/framework/framework.jar
3.  --->1.adb root
    --->2.adb remount
    --->3.adb push out/target/product/hammerhead/system/framework/framework.jar system/framework


七。如果改变了api的话(比如:修改了PhoneWindManager.java,或者frameworks/base/core等关于系统api的文件)
1.make update-api
2.mmm frameworks/base     
3.再push进去

关于Android源码的编译,运行。整体思路就是这样的。可能在以上步骤中,每个人遇到的问题不同(我只是在我电脑上实验成功了这些指令)。大家可以参看下面的博客链接。

http://jileniao.net/linux-android-building.html
http://wenku.baidu.com/link?url=HWBk3p9_fGcs7oYuQ0uSnPsslyxeWGcyiorJUw43bZgLkpMGxqeN3efR3XyI5UKtSSA-bYjnHUk3nGpW_3VBstnI6IgUXF_85yDGO_JaiCy
http://www.cnblogs.com/hoji-real/articles/2144892.html
http://www.cnblogs.com/bluestorm/p/4419135.html
http://blog.csdn.net/luobin1984/article/details/7994671



















   


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值