在Windows平台获取Android源码2

在Windows平台获取Android源码1 文章内容,如下:

在运行repo sync 命令之后,cygwin终端就会开始同步android源码了,可问题就来了。

1、要等待多入久呢?

2、什么时候表示同步完呢?

3、同步完,文件会成怎样呢?

4、在同步中,会不会遇到问题呢?

以下我来 一 一解答:

1、如果是一直都在下载没中断过,那一般来说要等待的时间4-12小时,为什么不中断也要4-12小时呢?因为要看你下载的android源码的版本和你下       载 源(如国内99%是比国外的快吧),而android源码版本的话,如你下载的是4.0中的 android-4.0.1_r1版本,其大小大概是18.9 GB                        (20,358,066,176字节)左右(这里是在隐藏文件夹中,一般不可见,要查看也是可以的,在文件资源管理器选项中设置),而从中检测出来的源码就      有4.53 GB  (4,869,066,752 字节),而5.0中的android-5.1.1_r3大小就是60G左右,不过全部下载完后从中检测出来的文件(也就是可见源码,如          java文件及C语言的h文件、cpp文件等)是13.6G右左。

2、其同步,其实是先同步.repo中的隐藏文件中的.git文件内容,也就是第一点中下载的隐藏在隐藏文件夹中(这个比真源码大的多,如第一点言),        那到底什么时候是下载完成的状态呢,下载完成后会有这样的提示:                                                                                                             

    Fetching projects: 100% (486/486), done.  
    图例: 

     

     上面是下载完.repo中的文件内容,之后它就会从中检出其中的文件(看得懂的android源码)

3、在检测出文件之前,也就是没下载完之前,在.repo那个文件夹中是没有可见文件的,只有检出文件的工作 完成才可以有可见的文件夹(也就是有         看的懂的android源码)。

4、在同步所遇问题还是很多的,我就在下面只说我所遇的几个比较关键的问题及解决方法,如下:

     一、同步时,经常会卡住,就是repo sync的时候总是下了一会儿就停了,这时只能中断了重新repo sync,虽然会断点续传,但是越到后面越慢,             有可能fetching projects 还没完成就停了 ,这时就要重新repo sync,如果你觉得想让电脑专心为你处理这事也可以  用repo sync -jn  ,其中               的n 是自然数,根据自已电脑配置来设,不是越大越好的,如我的就是repo sync -j8   。 按理说在repo init  ....之后使用repo sync就可以开始             下载源码了,但是在下载过程中经常会出现没网速“死”的情况。当然,我修改了/etc/hosts文件之后就再也么有死过。在没网速提示连接不              上时,可以按ctrl+z按键来暂停同步,然后再输入repo sync就可以了。但尽管这样也不太方便,比如大半夜的谁会守着电脑监督下载情况,源               码貌似都要一夜才下好,汗。为此在工作目录,我是~/document/androidSource文件夹下新建一个 download.sh脚本文件,

            里面的内容是

             #!/bin/bash     
               echo "======start repo sync======"     
               repo sync     
               while [ $? == 1 ]; do     
               echo "======sync failed, re-sync again======"     
               sleep 3     
               repo sync     
               done

           然后记得还要chomd a+x download.sh让其可以运行,然后终端输入./download.sh就可以开始下载了,用这一步代替官方文档里的repo                  sync。
           当连接不上终端时休息3毫秒然后再自动repo sync,这样就很完美了。

    二、 出现error: unable to create file tests/P_str_escape/str\\escape.rs的解决办法

         如下:

              Fetching projects: 100% (486/486), done.
              Syncing work tree:  56% (273/486)  error: unable to create file tests/P_str_escape/str\\escape.rs: No such file or directory
              Traceback (most recent call last):
                File "/home/Administrator/AndroidCode/.repo/repo/main.py", line 531, in <module>
                  _Main(sys.argv[1:])
                File "/home/Administrator/AndroidCode/.repo/repo/main.py", line 507, in _Main
                  result = repo._Run(argv) or 0
                File "/home/Administrator/AndroidCode/.repo/repo/main.py", line 180, in _Run
                  result = cmd.Execute(copts, cargs)
                File "/home/Administrator/AndroidCode/.repo/repo/subcmds/sync.py", line 821, in Execute
                  project.Sync_LocalHalf(syncbuf, force_sync=opt.force_sync)
                File "/home/Administrator/AndroidCode/.repo/repo/project.py", line 1327, in Sync_LocalHalf
                  self._InitWorkTree(force_sync=force_sync)
                File "/home/Administrator/AndroidCode/.repo/repo/project.py", line 2486, in _InitWorkTree
                  raise GitError("cannot initialize work tree")
              error.GitError: cannot initialize work tree

        解决方法在  https://blog.csdn.net/u013553529/article/details/50616725