zoukankan      html  css  js  c++  java
  • Android拓展系列(11)--打造Windows下便携的Android源码阅读环境

    因为EXT和NTFS格式的差异,我一直对于windows下阅读Android源码感到不满。
    前几天,想把最新的android5.0的源码下下来研究一下,而平时日常使用的又是windows环境,于是专门思考了一下这个问题,总结一次。

    要求

    有且只有一份可以下载,更新,编译的Android源码,可以在不同平台查看。

    硬件篇

    方案一:U盘

    拷贝一份在linux下的Android源码,到某一U盘。
    优点:

    1. u盘便携性非常强,可随身携带

    缺点:

    1. 源码不能更新,每次重新拷贝最新的源码需要一台linux,而且因为体积太大,不现实。
    2. EXT的U盘在windows下不能查看,NTFS的U盘的源码在linux下会破坏文件格式(git可以检测的出来)。

    方案二:虚拟机

    在虚拟机中安装linux,然后把源码目录设置共享。
    优点:

    1. 完整的linux下源码,可以共享给windows下,可以随时下载更新、编译等,堪称完美,但是缺点极大。

    缺点:

    1. 每次开机都要去启动虚拟机,一度我曾使用vagrant缓解了这个问题。
    2. 开启一个虚拟机需要浪费大量的CPU和内存。

    方案三:云主机

    优点:

    1. 完整的linux下源码,可以共享给windows下,没有方案一的缺点,但是局限性极大。

    缺点:

    1. 云主机的空间大小
    2. 需要联网,云主机的带宽有限。
    3. 这得花多少冤枉钱。

    方案四:U盘Linux

    优点:

    1. 把linux系统安装到u盘,随插随用

    缺点:

    1. 一般的u盘速度慢
    2. 一般的u盘空间不够,最新的android5.0.2的源码,我编译后用了70G左右。
    3. windows下读取不了ext4的u盘,只能在linux下查看

    针对上述问题,我结合当前的一些硬件的发展,找到了一个相对于前面更好的终极方案。

    终极方案:高速大U盘Linux + 小米路由器

    我使用闪迪的128G的CZ88u盘,速度非常快(读260M/s,写240M/s),安装ubuntu到u盘。插入到小米路由器的USB口。
    优点:

    1. 高速U盘的linux非常流畅,克服了U盘慢影响系统使用体验的诟病。
    2. 小米路由器可以把EXT4的U盘共享给windows.
    3. 小米路由器是不关机设备,和电脑独立,可以随意切换系统或者设备,均可阅读到源码
    4. 如果网络支持的话,可以实现远程ssh访问到小米路由器阅读源码(静态IP最好,实现动态IP可以花生壳),这将极其方便!
    5. 随时在linux下升级android源码,也可以编译,定制。

    缺点:

    1. 高速大U盘比较贵,CZ88,易迅上次做活动799元,现在恢复到1388元。
    2. 小米路由器,我用的699版本的,这个也是成本,但这些都是一次性投入。

    软件篇

    Android5.0源码下载和编译

    这个和之前Android4.x源码下载和编译的方法几乎一样,参考Android学习系列(38)--Android源码下载和编译,如下图:

    128G的U盘使用情况(我在上面还搭建了一套完整Android的开发环境和一些其他软件):

    小米路由器读取U盘

    我把u盘linux个人目录映射到Y盘,里面的aosp目录如下:

    使用Android Studio阅读Android源码

    这个我在Android拓展系列(10)--使用Android Studio阅读整个Android源码里已经专门谈到了。

    使用Git Extensions阅读Android单个模块源码

    如果觉得上面的方法太臃肿了,可以选择轻量级的只读方案,而且可以查看Git信息,就是使用Git Extensions。
    在aosp/external/glide目录下,右键,选择"GitExt Browser",如下图:

    附Git Extensions官方下载地址:http://sourceforge.net/projects/gitextensions/

    总结

    顿时觉得世界简单了!
    看,好多优秀的代码!
    要一边折腾一边学习!

  • 相关阅读:
    CDH5.2安装更换hive元数据存储数据库遇到的问题
    SSH 互信
    【记录】Java NIO实现网络模块遇到的BUG
    Http2协议简介
    synchronized(this) 与 synchronized(class) 理解
    【记录】spring boot 图片上传与显示
    Cookie-Session机制
    linux利用用户组给用户赋予不同的权限
    java .equals()和==的区别
    String直接赋值和使用new的区别
  • 原文地址:https://www.cnblogs.com/qianxudetianxia/p/4183627.html
Copyright © 2011-2022 走看看