Loading...

版本控制系統
我們使用版本控制系統來管理原始碼,其優點是開發人員可以將心思放在開發工作上,不用擔心程式碼更新、同步、回復、多人協作、存取權限等問題,尤其在程式碼日益增加的情況下,使用版本控制系統可以不用擔心 Repository(版本控制系統儲存原始碼的檔案空間)的儲存格式、資料庫的設計等相關問題。目前我們的程式碼大小約 3GB,包含 Android:2GB,Linux kernel:0.5GB,toolchain 及其它工具程式:0.5GB,若是沒有使用版本控制系統,實在難以維護如此龐大的程式碼。目前版本控制系統大致分為下列兩類:

  1. Centralized:Subversion
  2. Distributed:Git

我們開發環境的目錄結構:

至於其它版本控制系統,我們不在此多作介紹。我們使用 Subversion 作為原始碼的版本控制系統。上圖為我們開發環境的目錄結構,以下為各目錄的說明:

  • .config:最上層的設定檔,在執行完 make menuconfig 後自動產生,內容記錄欲編譯的項目及版本,包含 Linux kernel 及其版本、Busybox 及其版本、File System 等等。
  • LICENSE:開發環境的版權聲明。
  • Makefile:最上層的Makefile,用來控制開發環境的編譯行為。
  • app:target 端的 Application 原始碼,包含 Busybox、Strace 等等。
  • config:部份軟體套件的設定檔,包含 Linux kernel、Busybox 等設定檔。
  • doc:開發過程中所參考的相關文件,包含軟硬體等相關文件。
  • kernel:多個不同版本的 Linux kernel 原始碼。
  • log:開發過程中的記錄檔,包含開機訊息、除錯訊息、Android 的執行訊息等等。
  • mkfile:為了使用我們的開發環境編譯各個軟體套件所新增的 Makefile。
  • mydroid:JDK、Android 原始碼。
  • rootfs:target 端的檔案系統,包含最陽春、基本的檔案系統、預先編譯好且可以在 PXA270 執行的 Android 檔案系統。
  • scripts:toolchain、host 端的工具程式, 包含 mkimage、mkfs.jffs2、mkyaffs2image 等等。
Loading...