1. 程式人生 > >repo搭建android程式碼倉庫

repo搭建android程式碼倉庫

        OEM提供的rk3188+Android4.4.2原始碼包是把全部的android原始碼做成了一整個git倉,看著都嚇人。於是我打算改造一下。

        直接採用google管理android原始碼的方式,簡單的把OEM提供的android原始碼按目錄拆分成多個程式碼倉,然後用repo+git的方式搭建一套完整的版本管理。

        網上介紹repo搭建程式碼倉的文章有很多,大致就是先用git建一個存放repo需要的default.xml的程式碼倉,用來存放各個xml配置檔案。然後再新建多個git程式碼倉,存放android原始碼。default.xml中需要寫好git倉的下載名稱,遠端git倉的下載連線,拉取到本地的路徑名稱等。下面是一個完整的default.xml,可以作為參考:

<?xml version="1.0" encoding="UTF-8"?>  
<manifest>  
  <remote fetch="ssh://[email protected]"  ====> git程式碼倉庫的下載連結 
          name="origin"                     ====> git遠端伺服器的名稱,git pull/git fetch會用到
          review="http://192.168.1.1"/>   ====> repo upload提交修改的gerrit連結,如不需要review程式碼則不需要填寫該項
  <default remote="origin" revision="master"/>  ====> 表示取遠端git倉庫的master分支,即主分支
    <project path="abi"   name="android/abi"  />  ====> name代表git程式碼倉庫名稱,path代表clone到本地的目錄。下同
    <project path="art"   name="android/art"  />  
    <project path="bionic"   name="android/bionic"  />  
    <project path="bootable"   name="android/bootable"  />  
    <project path="build"   name="android/build"  />  
    <project path="cts"   name="android/cts"  />  
    <project path="dalvik"   name="android/dalvik"  />  
    <project path="developers"   name="android/developers"  />  
    <project path="development"   name="android/development"  />  
    <project path="device"   name="android/device"  />  
    <project path="docs"   name="android/docs"  />  
    <project path="external"   name="android/external"  />  
    <project path="frameworks"   name="android/frameworks"  />  
    <project path="hardware"   name="android/hardware"  />  
    <project path="kernel"   name="android/kernel"  />  
    <project path="libcore"   name="android/libcore"  />  
    <project path="libnativehelper"   name="android/libnativehelper"  />  
    <project path="ndk"   name="android/ndk"  />  
    <project path="packages"   name="android/packages"  />  
    <project path="pdk"   name="android/pdk"  />  
    <project path="prebuilts"   name="android/prebuilts"  />  
    <project path="RKDocs"   name="android/rkdocs"  />  
    <project path="rkst"   name="android/rkst"  />  
    <project path="RKTools"   name="android/rktools"  />  
    <project path="sdk"   name="android/sdk"  />  
    <project path="system"   name="android/system"  />  
    <project path="tools"   name="android/tools"  />  
    <project path="vendor"   name="android/vendor"  />  
    <project path="resource/android_bin"   name="android/android-bin"  />  ====> 存放自定義的apk等的git倉庫,拉到本地resource/android_bin目錄下
    <project path="resource/android_logo"   name="android/android-rom-oem-res"  />  ====> 存放自定義開機logo的git倉庫,拉到本地resource/android_logo目錄下
    <project path="resource/sdk_root_files"   name="android/sdk_root_files"  >  ====> SDK根目錄下的檔案組成的git倉庫,拉到本地resource/sdk_root_files目錄下
      <copyfile src="README" dest="README" /> ====> 把單個檔案一個一個的複製到本地SDK根目錄下。下同
      <copyfile src="make.sh" dest="make.sh" /> 
      <copyfile src="manifest.xml" dest="manifest.xml" />  
      <copyfile src="buildspec.mk" dest="buildspec.mk" />  
      <copyfile src="Makefile" dest="Makefile" />  
      <copyfile src="mkimage.sh" dest="mkimage.sh" />  
      <copyfile src="svn.sh" dest="svn.sh" />  
      <copyfile src=".gitignore" dest=".gitignore" />  
    </project>  
</manifest> 

        以下是repo搭建程式碼倉的一些參考連結:

        https://blog.csdn.net/kanyueliang410/article/details/79146145

        https://blog.csdn.net/shift_wwx/article/details/19557031

        https://www.cnblogs.com/aijianshi/p/5822647.html