A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

原文链接:http://blog.csdn.net/mwq384807683/article/details/71512505

源码分析相关面试题
  • Volley源码分析
  • 注解框架实现原理
  • okhttp3.0源码分析
与XMPP相关面试题
  • 与XMPP相关试题一
  • 与XMPP相关试题二
与性能优化相关面试题
  • 与性能优化相关面试题一
  • 与性能优化相关面试题二
  • 与性能优化相关面试题三
  • 与性能优化相关面试题四
  • 与性能优化相关面试题五
  • 与性能优化相关面试题六
  • 与IPC机制相关面试题
与登录相关面试题
  • oauth认证协议原理
  • token产生的意义
  • 微信扫一扫实现原理
与开发相关面试题
  • 迭代开发的时候如何向前兼容新旧接口
  • 手把手教你如何解决as jar包冲突
  • context的原理分析
与人事相关面试题
  • 人事面试宝典
本文配套视频
  • 静默安装原理一
  • 静默安装原理二

很多哥们在后台公众号留言,让讲讲如何编译源码,感觉源码开发很神秘,好吧,今天就手把手教大家安装虚拟机编译源码,文字部分的东西就别看了,毕竟源码或者技术这种东西三言两语也讲不明白,直接看视频吧,通过本文我录制的视频希望对大家能起到抛砖引玉的作用,不过这个视频是我在三年前录制的,讲的是通过源码编译不需要root权限实现静默安装和偷拍,然后也把Android系统安装源码给大家分析了,毕竟三年前随堂录制的视频,也比较简单的东西,如果没有收获随便看看就行,有收获点个赞就行,对静默安装感兴趣就从第一个视频开始看起,如果只是单纯对源码编译感兴趣,直接从第二个视频15分钟开始看就行,这样能节约大家的时间,视频时间有点长。

四年前写的静默安装代码,有兴趣看看吧:http://www.apkbus.com/forum.php?mod=viewthread&tid=120895

Android源码分析1. 了解虚拟机的的使用

Android 系统的编译环境目前只支持 Linux 以及 Mac OS 两种操作系统
虚拟机可以很方便的搭建不同系统的开发环境
虚拟机可以完整的模拟一台电脑
虚拟机中的系统独立于主系统存在,子系统的损坏与否不影响主系统功能

1.1. 了解虚拟机的安装和创建新虚拟机的方法









1.2. 了解虚拟机里安装Ubuntu系统的方法




Android源码下载
Android源码下载支持的系统目前只有Ubuntu和Mac OS两种操作系统, 本次以Ubuntu系统为例.
官方网站: http://source.android.com/source/downloading.html
  • 下载Git(版本控制工具). 调出命令行: ctrl + alt + T
    sudo apt-get install git
  • 安装curl(上传和下载数据的工具).
    sudo apt-get install curl
  • 安装repo(一个基于git的版本库管理工具, 这里用于自动批量下载android整个项目.).
    // 创建目录mkdir bin// 下载repo脚本到本地bin文件夹下curl http://android.git.kernel.org/repo >~/bin/repo// 如果上面下载失败, 采用下面这种方式curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" >~/bin/repo// 给所有用户追加可执行的权限chmod a+x ~/bin/repo// 临时把repo添加到环境变量中, 方便后面执行.// 注意: 每次重启ubuntu之后此环境变量失效, 重新配置就可以了.export PATH=~/bin:$PATH
  • 创建文件夹, 用于存放下载的Android源码.
    // 创建目录mkdir android_source // 修改权限chmod 777 android_sourcecd android_source
  • 初始化库.
    // 需要先配置git的用户信息git config --global user.email "ad_307@yeah.net"git config --global user.name "liyindong"repo init -u https://android.googlesource.com/platform/manifest -b android-2.3_r1// 如果上面初始化失败, 用下面的代码repo init -u git://codeaurora.org/platform/manifest.git -b gingerbread// 或repo init -u git://android.git.kernel.org/platform/manifest.git -b  gingerbread出现以下信息成功初始化repo initialized in /home/liyindong/android_source
  • 开始同步下载.
    repo sync
    注意: 下载过程中, 因为网络问题, 可能会中断下载. 当中断下载时, 继续使用repo sync命令继续下载.

Android源码编译在编译源码之前需要做一些准备操作, 详细步骤如下:
1. 安装JDK, google官方要求编译2.3源码需要JDK1.6.
  • 1). 下载JDK1.6, 下载地址:http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin
  • 2). 创建目录.
    sudo mkdir /usr/java
  • 3). 把下载好的jdk-6u45-linux-x64.bin拷贝到上面创建的目录下.
    sudo cp /home/liyindong/jdk-6u45-linux-x64.bin /usr/java
  • 4). 添加可执行权限.
    sudo chmod 755 /usr/java/jdk-6u45-linux-x64.bin
  • 5). 解压.
    cd /usr/javasudo ./jdk-6u45-linux-x64.bin
  • 6). 配置环境变量.
    export JAVA_HOME=/usr/java/jdk1.6.0_45export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 7). 验证是否成功.
    liyindong@liyindong-VirtualBox:~$ java -versionjava version "1.6.0_45"Java(TM) SE Runtime Environment (build 1.6.0_45-b06)Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
2. 安装其他编译时依赖的软件.注意: ubuntu自带的源中速度比较慢, 有些软件找不到, 所以需要修改为国内的源, 修改源步骤如下:
3. 开始编译, 在源码的目录下, 执行一下命令:
    make5. 了解SourceInsight的使用方法








3 个回复

正序浏览
多谢分享
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马