最近因为公司项目,需要对Chrome的某一模块进行修改后,兼容公司的Android设备,现记录下Chrome的源码下载过程,作为笔记。

1. 准备Ubuntu系统,最好是物理机上安装,因为Chrome首次编译耗时较长,对硬件要求较高。我使用的Ubuntu版本为14.04.1。

2. 下载Chrome源码要,这个可以通过更换hosts解决(修改hosts后,在下载其中的第三方库代码时还是会有问题,这时需要设置代理,后面会讲到),从laod.cn上下载linux可用的hosts文件,替换到/etc/hosts。注意备份原文件。网址如下:

     https://laod.cn/hosts/2017-google-hosts.html

3. 根据谷歌官方安装步骤的操作步骤下载:下述命令仅供参考,具体情况根据链接。


        3.1     git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
        3.2     export PATH="$PATH:/path/to/depot_tools"
        3.3     mkdir ~/chromium && cd ~/chromium
        3.4     fetch --nohooks android
        3.5     cd src
        3.6     If you have an existing Linux checkout, you can add Android support by appending target_os = ['android'] to your .gclient file (in the directory above src):
                    [ echo "target_os = [ 'android' ]" >> ../.gclient ]
                gclient sync
        3.7     build/install-build-deps-android.sh

         在3.7安装依赖package是可能会报错,此时需要更换apt源,可参考另一篇文章修改apt源。
        3.8     gclient runhooks

4.  在执行fetch --nohooks android时,一般在最后会有如下third-party无法下载。
            src/third-party/pdfium
            src/third-party/skia
            src/third-party/swiftshader
            src/third-party/webrtc
            src/third-party/android_tools/ndk
     解决方法:
     通过http/https代理:
               4.1  sudo apt-get install python-gevent python-pip
                       sudo pip install s
                4.2  创建shadow.json:
                        {
                            "server":"xxxxxx",
                            "server_port":xxxx,
                            "local_port":10808,
                            "password":"xxxx",
                            "timeout":600,
                            "method":"aes-256-cfb"
                        }
        local_port为自定义,加密方法根据实际情况填写。
                4.3 sslocal -c /path/to/s.json
                       或开机自启动:
                        vim /etc/rc.local
                        sudo sslocal -c /path/to/s.json
               4.4 新开一个终端:
                        sudo apt-get install privoxy
                        vim /etc/privoxy/config
                            761行: listen-address 127.0.0.1:8118
                            1336行: forward-socks5 / 127.0.0.1:10808 .
                                注意不要漏掉最后的"."
                        sudo service privoxy restart
                        export http_proxy='http://127.0.0.1:8118'
                        export https_proxy='https://127.0.0.1:8118'
                        git config --global http.proxy 'socks5://127.0.0.1:10808'
                        git config --global https.proxy 'socks5://127.0.0.1:10808'

                        (git取消代理) git config --global --unset http.proxy
                5.  在src/目录执行gclient sync即可

更新代码步骤:根据经验总结的步骤,如遇到奇怪问题,建议按照下载步骤重新下载。
    1.  如上述设置代理后执行gclient sync,此步骤会更新所有依赖。
    2.  cd src;git fetch origin

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Android代码优化
  3. [百度空间] [原]跨平台编程注意事项(三): window 到 android 的
  4. 自定义View关于measure流程的基本思路整理
  5. android NDK的学习
  6. 18 .Android中创建与几种解析xml的方法
  7. Android检测Cursor泄漏的原理以及使用方法
  8. Android(安卓)Studio中JNI程序的单步调试和日志打印
  9. Android——控件跟随手指移动

随机推荐

  1. 中国Android应用商店汇总
  2. Android自动提示--AutoCompleteTextView
  3. android工厂类
  4. Android组件界面设计工具 DroidDraw
  5. android开发之res下的menu (xml+代码的形
  6. 自定义圆角button上下间距问题
  7. 单独编译使用WebRTC的音频处理模块 - and
  8. android 面试题一
  9. 《Android(安卓)安全(二)》Smali语法基础
  10. Toast.LENGTH_LONG和Toast.LENGTH_SHORT