① git github gitlab之間是什麼關系
Git是一款自由和開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的項目。
Git - 版本控制工具
Git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。[4]
Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。
Torvalds 開始著手開發 Git 是為了作為一種過渡方案來替代 BitKeeper,後者之前一直是 Linux 內核開發人員在全球使用的主要源代碼工具。開放源碼社區中的有些人覺得 BitKeeper 的許可證並不適合開放源碼社區的工作,因此 Torvalds 決定著手研究許可證更為靈活的版本控制系統。盡管最初 Git 的開發是為了輔助 Linux 內核開發的過程,但是我們已經發現在很多其他自由軟體項目中也使用了 Git。例如 最近就遷移到 Git 上來了,很多 Freedesktop 的項目也遷移到了 Git 上。
Github - 一個網站,提供給用戶空間創建git倉儲,保存用戶的一些數據文檔或者代碼等
作為開源代碼庫以及版本控制系統,Github目前擁有140多萬開發者用戶。隨著越來越多的應用程序轉移到了雲上,Github已經成為了管理軟體開發以及發現已有代碼的首選方法。
如前所述,作為一個分布式的版本控制系統,在Git中並不存在主庫這樣的概念,每一份復制出的庫都可以獨立使用,任何兩個庫之間的不一致之處都可以進行合並。
GitHub可以託管各種git庫,並提供一個web界面,但與其它像 SourceForge或Google Code這樣的服務不同,GitHub的獨特賣點在於從另外一個項目進行分支的簡易性。為一個項目貢獻代碼非常簡單:首先點擊項目站點的「fork」的按鈕,然後將代碼檢出並將修改加入到剛才分出的代碼庫中,最後通過內建的「pull request」機制向項目負責人申請代碼合並。已經有人將GitHub稱為代碼玩家的MySpace。
GitLab - 基於Git的項目管理軟體
GitLab 是一個用於倉庫管理系統的開源項目。使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。
三者都是基於git的,可以說是git的衍生品。
② 想使用docker來進行android源碼編譯,對電腦配置要求怎麼樣
這個配置足夠了,還需要配置好對應的環境和編譯工具。
③ 怎麼在Ubuntu編譯Android2.3源代碼以及製作自己的SDK
網上下一個軟碟通軟通(UitraISO)工具、然後去官網上下載一個64位ubuntu.*.iso系統文件、然後軟碟通工具自己製作一個USB啟動盤(非常簡單)不會用軟碟通的網路一下一大把!、系統最好是10.40以上的版本
使用的是ubuntu官網下載的ubuntu10.04 LTS 64位版本(ubuntu-10.04.2-desktop-amd64.iso)
配置軟體源:
系統安裝完畢以後應該首先換一個速度快的軟體源
一般用的是ubunt
不然下載各種更新和軟體包的時候非常的慢
安裝JDK:
我要編譯的是2.3姜餅的源代碼 所以需要使用jdk6 (還需要是64位的系統)
如果是32為系統藐視jdk要安裝jdk5.0的吧!藐視說有個doc什麼的不行!所以系統一般裝64的、如果是32的小伙們趕快把jdk看看
安裝方法:
打開終端
輸入
sudo add-apt-repository "deb "
sudo add-apt-repository "deb-src "
sudo apt-get update
sudo apt-get install sun-java6-jdk
就安裝好了 (ubuntu10.04 LTS版會自帶那兩個源)
並且不需要配置環境變數
這一步可以參考
安裝各種軟體包:
終端中輸入
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos texinfo libsdl-dev libwxgtk2.6-dev
最後三個是我補充的 其他都是官方文檔提供的
這一步可以參考
下載源代碼:
打開終端並輸入
mkdir ~/bin
PATH=~/bin:$PATH
這兩句是在你的個人文件夾下創建了一個名字叫bin的文件夾 並且把其加入到了環境變數中
再輸入
curl ; ~/bin/repo
chmod a+x ~/bin/repo
這兩句首先在bin目錄下面下載了一個repo文件 repo簡單來說就說用來版本控制的 我們就是用的它來同步代碼
然後建立一個用來存放源代碼的文件夾 我的這個文件夾的名字是android2.3
輸入
mkdir android2.3
cd android2.3
進入android2.3目錄
輸入
repo init -u git://androi/platform/manifest.git -b gingerbread
在此說明一下:
安卓總稱:「機器人」
1.5系統:「紙杯蛋糕」
Android 1.6 Donut甜甜圈
Android 2.0 Eclair松餅
Android 2.1 Eclair松餅
Android 2.2 Froyo凍酸奶
Android 2.3 Gingerbread姜餅(以上系統都是用於手機的)官方消息說2.4准備出來了!至於3.0目前只用於平板電腦
Android 4.0 Ice Cream Sandwich(簡稱ICS,冰淇淋三明治),
表示你需要的代碼是姜餅的 所以最後是gingerbread 如果是2.2代碼 就把gingerbread改成froyo
然後你需要輸入你的名字跟郵箱地址
如果提示找不到repo命令的話 需要重新設置環境變數 就是之前的PATH=~/bin:$PATH
輸入
repo sync
開始同步代碼 這個過程會根據你的網速來決定快慢
這一步需要下載的數據有3g那麼大
可以續傳 一次沒下完也沒關系
如果之前就已經下過一次的話 只需要把源代碼目錄(我的是android2.3)下有一個叫.repo的隱藏文件夾里的projects文件夾備份出來就可以了
以後還需要同步的時候再把projects文件夾拷貝回去
ctrl+h查看隱藏文件
這一步可以參考
編譯整個源代碼:
cd android2.3
進入你的代碼目錄
輸入
. build/envsetup.sh
注意.和build中間有個空格
輸入
lunch full-eng
make -j2
輸入make就是開始編譯代碼了 加一個-j2參數就是開兩個線程去編譯 速度會快些 我花了兩個小時的時間
編譯完畢以後馬上輸入
emulator
就可以運行模擬器了 系統能跑起來就說明編譯成功了
如果提示找不到emulator命令的話
需要添加環境變數
在android2.3目錄下的out/target/proct/generic文件夾下會看到system.img
能看到的話應該算是成功了
這一步可以參考
編譯SDK:
這一步在官方網站上沒有說明
但是在源代碼文件夾裡面有文檔提到了
就是在android2.3/sdk/docs目錄下有一個叫howto_build_SDK.txt的文件介紹了如何編譯SDK
原文
Then once you have all the source, simply build the SDK using: $ cd ~/my-android-git $ . build/envsetup.sh $ lunch sdk-eng $ make sdk
看來不需要先編譯整個系統再編譯SDK 可以直接上來就編譯SDK
按提示輸入
make到時候也可以加上-j參數 比如 make -j2 sdk
但是不推薦 因為容易編譯失敗 而且編譯SDK只需要二十多分鍾到時間 不算很長
當出現
Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>_mac-x86.zip
的時候 就表示編譯成功了 其中<build-id>默認是系統的用戶名
howto_build_SDK.txt中還提到了編譯ADT插件
我發現自己編譯到ADT插件竟然認不到platform 自己編譯出來到SDK也一樣
原因不明
只要使用官方的SDK和ADT就沒有問題了
具體就是把自己編譯出來platform拷貝到官方SDK里到platforms文件夾下 搞過Android開發都懂的
最後:
非常簡單的一步
就是直接修改源代碼然後編譯SDK就可以得到自己的SDK了
我就示範一個簡單的例子 拋磚引玉
首先我找到TextView的代碼
在frameworks/base/core/java/android/widget 如圖
我在updateTextColors方法的開頭添加了一句System.out.println
列印了一句話"Source Code Changed"
updateTextColors方法會在TextView的setTextColor方法中被調用
好 保存
編譯
然後使用這個platform
新建一個項目
調用一下TextView的setTextColor方法看看有什麼效果
一個很簡單的例子
看看
Source Code Changed被打出來了
SDK修改成功
④ 請問CVS是什麼啊
CVS是「Concurrent Version System」的簡稱,即是是一個C/S系統,常用的代碼版本控制軟體。
CVS是開發源代碼的配置管理工具,其源代碼和安裝文件都可以免費下載。CVS是源於unix的版本控制工具,對於CVS的安裝和使用最好對unix的系統有所了解能更容易學習。
CVS的伺服器管理需要進行各種命令行操作。目前,CVS的客戶端有winCVS的圖形化界面,伺服器端也有CVSNT的版本,易用性正在提高。但因為CVS是開發源碼軟體,沒有生產廠家為其提供技術的支持。如發現問題,通常只能靠自己查找網上的資料進行解決。
(4)版本控制工具完成源碼編譯配置擴展閱讀:
cvs替代管理
cvs 不能代替開發者之間的交流。在單個文件內遇到沖突時,大多數開發者不費多大力氣就能解決它們。但更常見的"沖突(conflict)",是那些難度較大、不在開發者之間進行交流就沒法解決的問題。
當在一個文件內或多個文件中同時發生變化時,cvs 並不知道何時它們會在邏輯上發生沖突。它的沖突(conflict)概念是純粹文本意義上的,這種沖突會在同一個文件的兩種變化十分接近以致於會破壞合並命令(如diff3)。
cvs 決不會指出程序邏輯上非文本或分布式的沖突。例如:假如你改變了在文件A 中定義的函數X 的參數。同時,別人在編輯文件B,仍用舊參數調用 X 這個函數。此時產生的沖突 cvs 可就無能為力了。