一、App開(kāi)發(fā)所需技術(shù)概覽
一、App的類(lèi)型
想要了解App開(kāi)發(fā)所需的技術(shù),首先我們要對(duì)App的類(lèi)型有一個(gè)基本的認(rèn)識(shí)。 WebApp:這是一種基于iOS/Android優(yōu)化的web站點(diǎn),用戶(hù)無(wú)需下載安裝即可訪(fǎng)問(wèn)。它主要側(cè)重于特定功能的實(shí)現(xiàn),依賴(lài)于手機(jī)瀏覽器運(yùn)行。這種App的開(kāi)發(fā)成本低,維護(hù)更新簡(jiǎn)單,支持云修復(fù)。但用戶(hù)體驗(yàn)可能有所不足,例如頁(yè)面跳轉(zhuǎn)可能遲鈍,交互動(dòng)態(tài)效果不夠靈活。 Native App:這是基于智能手機(jī)操作系統(tǒng)(如ios和Android)用原生程序編寫(xiě)的App。它的兼容性和訪(fǎng)問(wèn)能力出色,擁有最佳的用戶(hù)體驗(yàn)和交互界面,但開(kāi)發(fā)難度和成本相對(duì)較高。 Hybrid App:這是一種結(jié)合了原生和Web App特點(diǎn)的混合類(lèi)App,采用網(wǎng)頁(yè)語(yǔ)言和程序語(yǔ)言進(jìn)行開(kāi)發(fā)。它既擁有Native App良好的用戶(hù)交互體驗(yàn),又兼具Web App跨平臺(tái)開(kāi)發(fā)的優(yōu)勢(shì),開(kāi)發(fā)成本和難度相對(duì)較低。二、不同類(lèi)型App的開(kāi)發(fā)技術(shù)

三、技術(shù)深度與選擇考量
對(duì)于Web App,由于其開(kāi)發(fā)成本較低,適用于一些功能需求較為簡(jiǎn)單的場(chǎng)景,如信息查詢(xún)、瀏覽等。而對(duì)于需要最佳用戶(hù)體驗(yàn)和交互界面的應(yīng)用,Native App是更好的選擇。Hybrid App則介于兩者之間,既有良好的用戶(hù)體驗(yàn),又有較低的開(kāi)發(fā)成本和難度。 在選擇開(kāi)發(fā)技術(shù)時(shí),還需考慮團(tuán)隊(duì)的技能儲(chǔ)備、開(kāi)發(fā)周期、成本預(yù)算等因素。不同的項(xiàng)目需求可能需要不同的技術(shù)組合,以達(dá)到最優(yōu)的開(kāi)發(fā)效果。四、技術(shù)發(fā)展趨勢(shì)與前景
隨著移動(dòng)互聯(lián)網(wǎng)的不斷發(fā)展,App的需求和種類(lèi)也在不斷增加,對(duì)于開(kāi)發(fā)技術(shù)的要求也越來(lái)越高。未來(lái),隨著技術(shù)的不斷進(jìn)步,我們可能會(huì)看到更加高效、便捷的開(kāi)發(fā)工具和平臺(tái)出現(xiàn),幫助開(kāi)發(fā)者更加快速地構(gòu)建出高質(zhì)量的App。 隨著跨平臺(tái)開(kāi)發(fā)技術(shù)的不斷發(fā)展,未來(lái)的App開(kāi)發(fā)將更加注重跨平臺(tái)的兼容性和用戶(hù)體驗(yàn)。這也意味著開(kāi)發(fā)者需要不斷學(xué)習(xí)和掌握新的技術(shù),以適應(yīng)不斷變化的市場(chǎng)需求。 App開(kāi)發(fā)是一個(gè)復(fù)雜而又充滿(mǎn)挑戰(zhàn)的過(guò)程,需要開(kāi)發(fā)者不斷學(xué)習(xí)和探索。希望通過(guò)本文,讀者能夠?qū)pp開(kāi)發(fā)有一個(gè)更深入的了解,并在實(shí)際開(kāi)發(fā)中靈活運(yùn)用各種技術(shù),構(gòu)建出優(yōu)秀的App作品。iOS開(kāi)發(fā)與Hybrid App概述一、iOS開(kāi)發(fā)基礎(chǔ)

Objective-C作為開(kāi)發(fā)iOS系統(tǒng)App的主流編程語(yǔ)言,其重要性不言而喻。為了搭建一個(gè)高效的開(kāi)發(fā)環(huán)境,開(kāi)發(fā)者通常會(huì)選擇使用蘋(píng)果公司的iOS SDK。這一軟件開(kāi)發(fā)包在iOS應(yīng)用程序的開(kāi)發(fā)過(guò)程中起著至關(guān)重要的作用,從程序的創(chuàng)建、編譯,到調(diào)試、運(yùn)行和測(cè)試,無(wú)所不包。對(duì)于希望深入學(xué)習(xí)iOS開(kāi)發(fā)的朋友,蘋(píng)果官方文檔無(wú)疑是最權(quán)威的資源。
二、Hybrid App概述及特點(diǎn)
Hybrid App是當(dāng)前移動(dòng)開(kāi)發(fā)中的熱門(mén)趨勢(shì)。它以web技術(shù)為主體,采用網(wǎng)頁(yè)語(yǔ)言如html5、CSS3和JavaScript進(jìn)行開(kāi)發(fā),同時(shí)融入Native功能。這種開(kāi)發(fā)方式的好壞,很大程度上取決于底層中間件的交互與跨平臺(tái)能力。
三、優(yōu)秀的Hybrid App開(kāi)發(fā)工具
國(guó)內(nèi)外市場(chǎng)上存在著許多優(yōu)秀的Hybrid App開(kāi)發(fā)工具,如國(guó)外的AppmAkr和Appmobi,以及國(guó)內(nèi)的APICloud。APICloud的底層引擎Deep Engine采用半翻譯式原理,將運(yùn)行中的web代碼翻譯成Native API。這意味著開(kāi)發(fā)者在享受web開(kāi)發(fā)便捷性的還能調(diào)用原生語(yǔ)言開(kāi)發(fā)的功能模塊,從而達(dá)到媲美原生App的用戶(hù)體驗(yàn)。

四、Hybrid App的優(yōu)勢(shì)
對(duì)于企業(yè)而言,Hybrid App具有顯著的優(yōu)勢(shì)。它既可以滿(mǎn)足企業(yè)對(duì)于移動(dòng)應(yīng)用的需求,又能在開(kāi)發(fā)時(shí)節(jié)省大量的時(shí)間和成本。與傳統(tǒng)的原生應(yīng)用相比,Hybrid App在不采用或大部分不采用原生語(yǔ)言開(kāi)發(fā)的情況下,仍能保持原生應(yīng)用的特性。隨著web技術(shù)的不斷發(fā)展,Hybrid App技術(shù)也日趨成熟。許多大型應(yīng)用,如淘寶、微信和攜程,都已經(jīng)采用了這種開(kāi)發(fā)模式。
五、Hybrid App的便捷性
Hybrid App給企業(yè)帶來(lái)了移動(dòng)應(yīng)用的開(kāi)發(fā)、維護(hù)和更新的便捷性。從成本投入和用戶(hù)體驗(yàn)的角度考慮,Hybrid App無(wú)疑是首選。企業(yè)可以根據(jù)自己的需求和實(shí)際情況,靈活選擇開(kāi)發(fā)類(lèi)型和開(kāi)發(fā)工具,以滿(mǎn)足不斷變化的市場(chǎng)需求。
iOS開(kāi)發(fā)和Hybrid App開(kāi)發(fā)都是當(dāng)前移動(dòng)開(kāi)發(fā)領(lǐng)域的熱門(mén)方向。企業(yè)可以根據(jù)自身的需求和實(shí)際情況,選擇最適合自己的開(kāi)發(fā)方式和工具。無(wú)論是采用Objective-C進(jìn)行原生應(yīng)用開(kāi)發(fā),還是采用Hybrid App開(kāi)發(fā)方式,都能為用戶(hù)帶來(lái)流暢、豐富的移動(dòng)體驗(yàn)。第二章:如何在App內(nèi)部署SDK和AppID

一、證書(shū)定位與作用簡(jiǎn)述
在開(kāi)發(fā)iOS應(yīng)用時(shí),各類(lèi)證書(shū)扮演著至關(guān)重要的角色。它們確保了應(yīng)用的身份認(rèn)證、授權(quán)及安全通信。為了更好地部署SDK和AppID,首先得深入理解各類(lèi)證書(shū)的定位與作用。
二、開(kāi)發(fā)者證書(shū)詳解及制作流程
1. 開(kāi)發(fā)者證書(shū)概述
開(kāi)發(fā)者證書(shū)是iOS開(kāi)發(fā)的基礎(chǔ),無(wú)論是真機(jī)調(diào)試還是上傳到App Store都需要它。它分為開(kāi)發(fā)證書(shū)和發(fā)布證書(shū)兩種類(lèi)型,類(lèi)型包括ios Development和ios Distribution。該證書(shū)主要用于證明開(kāi)發(fā)者的身份。

2. 制作流程
利用開(kāi)發(fā)者賬號(hào)登錄開(kāi)發(fā)者中心,進(jìn)入證書(shū)配置板塊。點(diǎn)擊證書(shū)顯示界面右上角的加號(hào),創(chuàng)建開(kāi)發(fā)者證書(shū)。該操作需重復(fù)兩次,分別創(chuàng)建開(kāi)發(fā)測(cè)試證書(shū)和發(fā)布證書(shū)。以開(kāi)發(fā)測(cè)試證書(shū)為例,選擇第一個(gè)紅框中的內(nèi)容,創(chuàng)建證書(shū)簽名請(qǐng)求文件(CSR)。將此文件保存到一處,并在開(kāi)發(fā)者中心提交。提交后生成的cer證書(shū)有效期為一年。利用同樣方法配置并下載發(fā)布證書(shū),雙擊安裝。
三. AppID配置及推送證書(shū)創(chuàng)建
1. AppID的重要性
AppID是每一個(gè)應(yīng)用的獨(dú)立標(biāo)識(shí),配置該應(yīng)用的權(quán)限都在這里設(shè)置。例如是否使用PassBook、GameCenter以及更常見(jiàn)的push服務(wù)。若選中了push服務(wù),便可創(chuàng)建推送證書(shū)。

2. 推送證書(shū)的配置
同樣在開(kāi)發(fā)者中心進(jìn)行配置,先在AppID中勾選push選項(xiàng),為該AppID添加推送功能。之后創(chuàng)建證書(shū)請(qǐng)求文件,提交生成推送證書(shū)。值得注意的是,盡管在證書(shū)欄中也可以直接創(chuàng)建推送證書(shū),但建議在AppID中創(chuàng)建,以避免因忘記開(kāi)通push服務(wù)而導(dǎo)致的問(wèn)題。
四、Provisioning Profiles的制作
Provisioning Profiles(PP文件)是蘋(píng)果特色的一個(gè)東西,它將appID、開(kāi)發(fā)者證書(shū)和硬件Device綁定在一起。在開(kāi)發(fā)者中心配置好后可添加到Xcode上,也可直接在Xcode上生成。真機(jī)調(diào)試時(shí)需在PP文件中添加真機(jī)的udid。制作流程包括創(chuàng)建開(kāi)發(fā)測(cè)試用PP文件和發(fā)布PP文件,前者用于真機(jī)測(cè)試,后者用于提交發(fā)布。注意區(qū)分Ad Hoc格式和wildCard格式的選擇。
至此,客戶(hù)端開(kāi)發(fā)和上架所需的證書(shū)文件已配置完成。關(guān)于服務(wù)端所用的推送證書(shū)配置及iOS的推送流程,將在下一章詳細(xì)闡述。今天的分享就到這里,希望對(duì)你有所幫助。明天我們將繼續(xù)深入探討推送證書(shū)的配置流程,敬請(qǐng)期待。今晚先和大家開(kāi)個(gè)黑,共同游戲放松一下!編譯Android源碼:環(huán)境與依賴(lài)項(xiàng)概述

======================
章節(jié)一:介紹編譯環(huán)境需求
-
在進(jìn)行Android源碼的編譯之前,確實(shí)需要搭建相應(yīng)的軟件開(kāi)發(fā)環(huán)境(SDK環(huán)境)。下面是一份關(guān)于如何準(zhǔn)備編譯環(huán)境的指南。
章節(jié)二:下載與安裝基礎(chǔ)軟件環(huán)境

推薦在Ubuntu 9.10環(huán)境下進(jìn)行編譯,因?yàn)閃indows平臺(tái)目前不被支持。你可以從各大軟件倉(cāng)庫(kù)或官方渠道下載并安裝Ubuntu 9.10。安裝完成后,請(qǐng)按照以下命令安裝基礎(chǔ)軟件環(huán)境:
```bash
sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
```

這些軟件包包括了編譯Android源碼所需的基礎(chǔ)工具和庫(kù)。如果在編譯過(guò)程中遇到某些命令找不到的情況,可以通過(guò)`apt-get`來(lái)安裝它們。還有一些額外的包可能需要安裝,例如:make、gcc、g++等。請(qǐng)注意,官方文檔提到使用sun-java6-jdk可能會(huì)出問(wèn)題,因此推薦使用sun-java5-jdk。為了確保兼容性,建議同時(shí)安裝sun-java5-jdk和sun-java6-jdk,但只修改javadoc.1.gz和javadoc。因?yàn)檫@兩個(gè)是make sdk用到的關(guān)鍵組件。
章節(jié)三:軟件依賴(lài)的注意事項(xiàng)與問(wèn)題解決方案
-
在軟件環(huán)境安裝完畢后,還需要注意一些依賴(lài)項(xiàng)的問(wèn)題。例如,如果你只是進(jìn)行簡(jiǎn)單的編譯而不涉及到make sdk的話(huà),使用sun-java6-jdk應(yīng)該沒(méi)有問(wèn)題。但如果你需要進(jìn)行make sdk操作,那么就需要使用sun-java5-jdk或者同時(shí)安裝兩個(gè)版本的JDK,并特別注意javadoc的版本問(wèn)題。建議在安裝完JDK后,對(duì)相關(guān)的環(huán)境變量進(jìn)行配置和測(cè)試,確保軟件的正確運(yùn)行。如果遇到任何問(wèn)題,都可以嘗試通過(guò)查閱官方文檔或者社區(qū)論壇來(lái)尋找解決方案。
章節(jié)四:獲取源碼與編譯工具推薦途徑

獲取Android源碼的方式有多種,可以通過(guò)官方網(wǎng)站下載源碼包或者從各大軟件倉(cāng)庫(kù)獲取。為了簡(jiǎn)化編譯過(guò)程和提高效率,推薦使用自動(dòng)化編譯工具或集成開(kāi)發(fā)環(huán)境(IDE)進(jìn)行編譯操作。這些工具可以幫助你自動(dòng)完成環(huán)境的搭建和依賴(lài)項(xiàng)的解析,大大簡(jiǎn)化了編譯過(guò)程。它們還提供了豐富的調(diào)試工具和插件支持,方便開(kāi)發(fā)者進(jìn)行開(kāi)發(fā)和調(diào)試工作。具體的工具選擇可以根據(jù)個(gè)人喜好和項(xiàng)目需求來(lái)決定。推薦從可靠的渠道下載和使用這些工具,以保證其安全性和穩(wěn)定性。
章節(jié)五:總結(jié)與未來(lái)展望
-
經(jīng)過(guò)上述步驟的準(zhǔn)備和配置后,就可以開(kāi)始進(jìn)行Android源碼的編譯工作了。在編譯過(guò)程中可能會(huì)遇到各種問(wèn)題,需要耐心解決并不斷學(xué)習(xí)新的知識(shí)和技術(shù)。隨著Android系統(tǒng)的不斷升級(jí)和發(fā)展,未來(lái)的編譯環(huán)境和依賴(lài)項(xiàng)也可能會(huì)有所變化。我們需要保持對(duì)新技術(shù)的關(guān)注和學(xué)習(xí),以便適應(yīng)不斷變化的市場(chǎng)需求和技術(shù)趨勢(shì)。也期待未來(lái)的Android開(kāi)發(fā)環(huán)境能夠更加便捷高效,為開(kāi)發(fā)者提供更好的開(kāi)發(fā)體驗(yàn)和技術(shù)支持。安裝和配置Java環(huán)境以及Android源碼更新工具repo的指南

一、安裝Java環(huán)境
我們需要安裝Java開(kāi)發(fā)環(huán)境。按照以下步驟進(jìn)行:
1. 安裝Sun Java 6 JDK:使用命令 `$ sudo apt-get install sun-java6-jdk` 進(jìn)行安裝。
2. 修改javadoc的鏈接。進(jìn)入目錄 `/etc/alternatives` 并進(jìn)行一系列操作,確保javadoc鏈接指向正確的Java版本。具體操作包括刪除舊的javadoc鏈接和創(chuàng)建新的鏈接。
二、設(shè)置環(huán)境變量

為了Java程序能夠正確運(yùn)行,我們需要設(shè)置一些環(huán)境變量。步驟如下:
1. 使用文本編輯器(如emacs)打開(kāi) `.bashrc` 文件,位于用戶(hù)主目錄下。
2. 在文件中新增或整合PATH變量,包括JAVA_HOME、JRE_HOME等環(huán)境變量。這些環(huán)境變量指向Java的安裝路徑。同時(shí)設(shè)置ANDROID_JAVA_HOME為JAVA_HOME,以及CLASSPATH和JAVA_PATH等。
3. 保存并關(guān)閉文件后,執(zhí)行 `source ~/.bashrc` 命令使環(huán)境變量生效。
三、安裝repo工具

Repo是Android用于更新源碼的工具,安裝步驟如下:
1. 創(chuàng)建用于存放repo程序的目錄 ~/bin。
2. 下載repo腳本并使其可執(zhí)行。可以使用curl命令下載repo腳本,然后使用chmod命令使其具有執(zhí)行權(quán)限。
四、初始化repo
安裝完repo后,我們需要初始化它以便開(kāi)始更新Android源碼。

Repo是Android對(duì)Git的一個(gè)封裝,它簡(jiǎn)化了一些Git操作,使得從Android源碼的獲取、更新和同步變得更加便捷。初始化repo后,你就可以使用repo命令來(lái)管理你的Android源碼了。
五、注意事項(xiàng)
在以上安裝和配置過(guò)程中,請(qǐng)確保按照步驟正確操作,特別是環(huán)境變量的設(shè)置要準(zhǔn)確無(wú)誤。使用的Java版本和repo工具版本需與Android源碼版本相匹配,否則可能會(huì)出現(xiàn)兼容性問(wèn)題。如果遇到問(wèn)題,可以查閱相關(guān)文檔或?qū)で笊鐓^(qū)幫助。
以上就是安裝和配置Java環(huán)境以及Android源碼更新工具repo的詳細(xì)指南,希望對(duì)你有所幫助。創(chuàng)建工程目錄并啟動(dòng)Android源碼編譯之旅
一、創(chuàng)建工程目錄

在終端中,我們首先創(chuàng)建一個(gè)名為“android”的工程目錄。使用以下命令:
```bash
$ mkdir android
$ cd android
```

現(xiàn)在我們進(jìn)入到了新創(chuàng)建的工程目錄中,準(zhǔn)備進(jìn)行下一步操作。
二、repo初始化
接下來(lái),我們需要初始化repo工具,以獲取Android的源代碼。運(yùn)行以下命令進(jìn)行初始化:
```bash
$ repo init-u git://android.git.kernel.org/platform/manifest.git

```
初始化過(guò)程中,系統(tǒng)會(huì)要求您輸入名字和email地址。初始化成功后,會(huì)在工程目錄下顯示“repo initialized in /android”。在您的工程目錄下會(huì)生成一個(gè)隱藏的.repo目錄。
三、同步源代碼
使用repo sync命令同步源代碼。這一步可能需要很長(zhǎng)時(shí)間,取決于您的網(wǎng)絡(luò)狀況和代碼庫(kù)的大小。
四、編譯Android源碼并設(shè)置環(huán)境

進(jìn)入源碼目錄后,運(yùn)行make命令開(kāi)始編譯Android源碼。這個(gè)過(guò)程同樣可能需要很長(zhǎng)時(shí)間。編譯完成后,您會(huì)得到一個(gè)位于~/android/out目錄的輸出結(jié)果。
編譯完成后,我們需要設(shè)置一些環(huán)境變量以便在模擬器上運(yùn)行編譯好的Android系統(tǒng)。切換到模擬器相關(guān)的bin目錄,并編輯.bashrc文件以增加環(huán)境變量:
```bash
$ cd ~/android/out/host/linux-x86/bin
$ emacs ~/.bashrc

```
在.bashrc文件中新增環(huán)境變量,如下:
```bash
java程序開(kāi)發(fā)/運(yùn)行的一些環(huán)境變量
export ANDROID_PRODUCT_OUT=~/android/out/target/product/generic

export ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};
```
同步這些變化:
```bash

$ source ~/.bashrc
```
五、在模擬器上運(yùn)行編譯好的Android系統(tǒng)
現(xiàn)在我們可以啟動(dòng)模擬器并運(yùn)行編譯好的Android系統(tǒng)了。切換到相應(yīng)的目錄,并使用模擬器命令啟動(dòng):
```bash

$ cd ~/android/out/target/product/generic
$ emulator-system system.img -data userdata.img -ramdisk ramdisk.img
```
如果成功進(jìn)入Android桌面,那就意味著您的模擬器已經(jīng)成功運(yùn)行了編譯好的Android系統(tǒng)。
六、編譯模塊

在Android系統(tǒng)中,您可以單獨(dú)編譯一個(gè)應(yīng)用程序。編譯完成后,可能需要重新生成system.img。這可以通過(guò)相應(yīng)的工具或命令完成。具體步驟和命令可能會(huì)因應(yīng)用程序和編譯工具的不同而有所差異。在進(jìn)行模塊編譯時(shí),建議查閱相關(guān)文檔或參考具體的開(kāi)發(fā)指南。在源碼目錄下的命令執(zhí)行指南
一、環(huán)境設(shè)置與執(zhí)行腳本
在源碼目錄下,首先執(zhí)行$. build/envsetup.sh,這將設(shè)置編譯環(huán)境并賦予你一些實(shí)用的命令工具。這些命令能夠幫助你更方便地進(jìn)行編譯和文件查找操作。
二、常用命令解析
經(jīng)過(guò)環(huán)境設(shè)置后,你將得到一系列實(shí)用的命令:

`croot`:快速切換到源碼根目錄。
`m`:從源碼根目錄開(kāi)始編譯。
`mm`:編譯當(dāng)前目錄下的所有模塊。
`mmm`:編譯指定目錄中的模塊,例如編譯聯(lián)系人應(yīng)用:`mmm packages/apps/Contacts/`。
`cgrep`、`jgrep`、`resgrep`:分別用于在所有的本地C/C++文件、Java文件以及res/.xml文件中進(jìn)行關(guān)鍵字搜索。

`godir`:跳轉(zhuǎn)到包含指定文件的目錄。
你可以通過(guò)輸入`--help`來(lái)查看這些命令的詳細(xì)用法。
三、編譯結(jié)果及文件生成
使用`mmm`命令編譯指定目錄的模塊后,會(huì)生成兩個(gè)文件:
`out/target/product/generic/data/app/ContactsTests.apk`:測(cè)試版的聯(lián)系人應(yīng)用。

`out/target/product/generic/system/app/Contacts.apk`:正式版的聯(lián)系人應(yīng)用。
四、系統(tǒng)鏡像生成與模擬器運(yùn)行
完成編譯后,你可以使用`make snod`命令重新生成system.img,然后運(yùn)行模擬器。這樣,你就可以在模擬器上測(cè)試剛剛編譯的應(yīng)用了。
五、SDK編譯注意事項(xiàng)
直接執(zhí)行`make`并不包括SDK的編譯。為了生成SDK,需要進(jìn)行以下步驟:

1. 修改/frameworks/base/include/utils/Asset.h文件,將'UNCOMPRESS_DATA_MAX= 1 1024 1024'改為'UNCOMPRESS_DATA_MAX= 2 1024 1024',這是因?yàn)槭褂胑clipse編譯工程需要更大的buffer。
2. 由于本人不使用eclipse,所以ADT的編譯步驟在此略過(guò)。
3. 執(zhí)行`make sdk`命令開(kāi)始編譯SDK。注意,這一步需要的javadoc版本為1.5,所以你需要在步驟1中同時(shí)安裝sun-java5-jdk。
SDK的編譯過(guò)程相對(duì)較慢,請(qǐng)耐心等待。完成后,你就可以使用與源碼同步的SDK進(jìn)行Android開(kāi)發(fā)了。
以上就是關(guān)于在源碼目錄下執(zhí)行命令的詳細(xì)指南,希望對(duì)你有所幫助。編譯后生成的SDK存放指南

一、SDK存放位置
編譯生成的SDK被存放在out/host/linux-x86/sdk/目錄中。這個(gè)目錄下有兩個(gè)主要文件:android-sdk_eng.x_linux-x86.zip和android-sdk_eng.x_linux-x86目錄。其中,android-sdk_eng.x_linux-x86就是SDK的主要目錄。
二、SDK目錄管理建議
當(dāng)使用mmm命令編譯模塊時(shí),SDK的輸出文件可能會(huì)被清除。為了避免這種情況,建議將android-sdk_eng.x_linux-x86目錄單獨(dú)移出。這樣,后續(xù)的應(yīng)用開(kāi)發(fā)就可以基于這個(gè)SDK進(jìn)行。
三、環(huán)境變量配置

關(guān)于環(huán)境變量的配置,特別是關(guān)于android工具的選擇,有以下建議:
1. 我們通常不會(huì)使用從網(wǎng)上下載的Android SDK中的工具和img,因?yàn)樗鼈兛赡鼙容^舊,且與源碼不同步。
2. 我們也不會(huì)使用make編譯出來(lái)的out目錄中的工具和img,因?yàn)檫@些工具和img沒(méi)有經(jīng)過(guò)SDK的歸類(lèi)處理,可能會(huì)導(dǎo)致工具和配置找不到的情況。實(shí)際上,很多make sdk產(chǎn)生的工具和img在make編譯out目錄的時(shí)候已經(jīng)生成,make sdk主要做的是復(fù)制工作。
我們應(yīng)該優(yōu)先選擇使用從SDK中得到的工具和img。
四、安裝與配置ADT

這部分的內(nèi)容略過(guò),可以根據(jù)具體的安裝和配置指南進(jìn)行操作。
五、創(chuàng)建Android Virtual Device(AVD)
編譯出來(lái)的SDK不包含AVD。我們可以使用android工具來(lái)查看和創(chuàng)建AVD。具體步驟如下:
1. 使用命令“android list”來(lái)查看當(dāng)前存在的AVD。
2. 使用命令“android create avd -t 1 -n myavd”來(lái)創(chuàng)建新的AVD??梢酝ㄟ^(guò)“android --help”來(lái)查看命令選項(xiàng)的詳細(xì)用法。創(chuàng)建過(guò)程中大部分選項(xiàng)使用默認(rèn)值即可。

3. 再次執(zhí)行“android list”,可以看到AVD的存放位置。
4. 以后每次運(yùn)行模擬器時(shí),都需要加上“-avd myavd”或“@myavd”選項(xiàng),如使用命令“emulator -avd myavd”。
六、編譯linux內(nèi)核映像
若要編譯linux內(nèi)核映像,首先需要準(zhǔn)備交叉編譯工具鏈。
Android代碼樹(shù)中的prebuilt項(xiàng)目包含了我們編譯內(nèi)核所需的交叉編譯工具,利用這些工具可以開(kāi)始編譯linux內(nèi)核映像。這一過(guò)程中可能涉及復(fù)雜的配置和步驟,需要開(kāi)發(fā)者具備一定的專(zhuān)業(yè)知識(shí)和經(jīng)驗(yàn)。

第一章:設(shè)定環(huán)境變量
讓我們開(kāi)始配置我們的工作環(huán)境。我們通過(guò)emacs編輯器來(lái)修改~/.bashrc文件。打開(kāi)終端并輸入以下命令:
```bash
emacs ~/.bashrc
```

在打開(kāi)的編輯器中,我們需要增加兩行環(huán)境變量。具體如下:
```bash
export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
export ARCH=arm
```

保存更改后,同步這些變化,運(yùn)行:
```bash
source ~/.bashrc
```
現(xiàn)在,我們的環(huán)境變量已經(jīng)設(shè)定好了。

第二章:獲取合適的內(nèi)核源代碼
接下來(lái),我們要獲取合適的內(nèi)核源代碼。切換到android目錄:
```bash
cd ~/android
```

然后,從git倉(cāng)庫(kù)克隆內(nèi)核源代碼:
```bash
git clone git://android.git.kernel.org/kernel/common.git kernel
cd kernel
```

現(xiàn)在我們進(jìn)入到了內(nèi)核源代碼的目錄。通過(guò)以下命令查看我們當(dāng)前所在的分支:
```bash
git branch
```
如果顯示的是“android-2.6.27”,那就說(shuō)明你現(xiàn)在在android-2.6.27這個(gè)分支上,這也是kernel/common.git的默認(rèn)主分支。

第三章:查看所有分支
要查看所有可用的分支,我們可以使用git branch -a命令。運(yùn)行后,你會(huì)看到一系列分支,包括本地的和遠(yuǎn)程的。我們主要關(guān)注遠(yuǎn)程的分支,特別是那些帶有“android-goldfish”的版本。其中,“goldfish”是Android模擬器模擬的CPU類(lèi)型。我們選擇最新的版本“android-goldfish-2.6.29”。這意味著我們的模擬器將使用基于這個(gè)版本的代碼進(jìn)行編譯和運(yùn)行。
第四章:切換分支
接下來(lái)我們要切換到我們選擇的分支上。使用以下命令進(jìn)行切換:git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29然后再次運(yùn)行g(shù)it branch查看當(dāng)前分支情況,確保我們已經(jīng)成功切換到android-goldfish-2.6.29分支上?,F(xiàn)在我們已經(jīng)準(zhǔn)備好在這個(gè)特定的分支上進(jìn)行開(kāi)發(fā)或編譯工作。在這個(gè)分支上,我們可以進(jìn)行定制化的開(kāi)發(fā)或者測(cè)試等工作。這為我們提供了一個(gè)特定版本的Android內(nèi)核源代碼作為開(kāi)發(fā)的基礎(chǔ)。這為我們提供了一個(gè)特定版本的Android內(nèi)核源代碼作為開(kāi)發(fā)的基礎(chǔ)。同時(shí)我們也需要注意這個(gè)版本的特性以及它與其他版本的區(qū)別以便更好地進(jìn)行開(kāi)發(fā)工作。 d)設(shè)定交叉編譯參數(shù)打開(kāi)kernel目錄下的Makefile文件
在你的計(jì)算機(jī)系統(tǒng)中,kernel目錄是Android源代碼中的核心部分,其中包含操作系統(tǒng)核心的構(gòu)建規(guī)則。為了針對(duì)特定的硬件架構(gòu)(如ARM)編譯內(nèi)核,你需要設(shè)置交叉編譯參數(shù)。打開(kāi)位于kernel目錄下的Makefile文件。

設(shè)置CROSS_COMPILE指向arm-eabi編譯器
在Makefile中,你需要指定CROSS_COMPILE變量的值,該變量指向你之前下載的prebuilt編譯器中的arm-eabi編譯器。這樣做是為了確保內(nèi)核的編譯過(guò)程使用特定的編譯器進(jìn)行構(gòu)建。CROSS_COMPILE變量的常見(jiàn)格式是“編譯器名稱(chēng)前綴”,例如“arm-eabi-”。找到對(duì)應(yīng)的行并設(shè)置它。例如:CROSS_COMPILE?= arm-eabi-。這意味著CROSS_COMPILE變量現(xiàn)在指向的是arm-eabi編譯器。
修改LDFLAGS_BUILD_ID參數(shù)并添加新定義
接下來(lái),找到LDFLAGS_BUILD_ID的定義行,這行通常涉及到鏈接器的構(gòu)建標(biāo)識(shí)選項(xiàng)。為了簡(jiǎn)化構(gòu)建過(guò)程或解決某些特定問(wèn)題,你可能需要修改或注釋掉原有的LDFLAGS_BUILD_ID定義。注釋掉原有的行后,添加一個(gè)空的LDFLAGS_BUILD_ID定義。例如:LDFLAGS_BUILD_ID=,這將清除原有的鏈接器選項(xiàng)設(shè)置,為后續(xù)的編譯過(guò)程做準(zhǔn)備。
e)編譯內(nèi)核映像

在完成交叉編譯參數(shù)的設(shè)定后,你可以開(kāi)始編譯內(nèi)核映像了。導(dǎo)航到你的Android源代碼中的kernel目錄(使用命令`cd ~/android/kernel`)。然后執(zhí)行以下命令進(jìn)行內(nèi)核配置的初始化(`make goldfish_defconfig`)和內(nèi)核的編譯(`make`)。這些命令會(huì)根據(jù)你的配置和設(shè)定的參數(shù)來(lái)構(gòu)建內(nèi)核映像。
f)測(cè)試生成的內(nèi)核映像
在內(nèi)核映像編譯完成后,你需要測(cè)試它以確保其正常工作。使用模擬器來(lái)運(yùn)行你的內(nèi)核映像是一個(gè)常見(jiàn)的測(cè)試方法。使用命令`emulator-avd myavd-kernel ~/android/kernel/arch/arm/boot/zImage`來(lái)啟動(dòng)模擬器并加載你的內(nèi)核映像進(jìn)行測(cè)試。這個(gè)命令會(huì)啟動(dòng)模擬器并運(yùn)行你的ARM架構(gòu)的內(nèi)核映像。通過(guò)這種方式,你可以驗(yàn)證內(nèi)核的功能和性能表現(xiàn)。