android開發(fā)-智能手機(jī)研發(fā)綜述_第1頁
android開發(fā)-智能手機(jī)研發(fā)綜述_第2頁
android開發(fā)-智能手機(jī)研發(fā)綜述_第3頁
android開發(fā)-智能手機(jī)研發(fā)綜述_第4頁
android開發(fā)-智能手機(jī)研發(fā)綜述_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Android智能手機(jī)研發(fā)綜述(Smartphone)M廠開發(fā)三部劉昱東目的對(duì)Android手機(jī)技術(shù)研發(fā)有一個(gè)較全面了解提綱1.智能機(jī)概念2.Android概念3.Android軟件4.Android軟件開發(fā)環(huán)境5.Android硬件6.Android開發(fā)團(tuán)隊(duì)配置1.智能機(jī)概念智能機(jī)的定義智能手機(jī)定義:能單手操作,有電話功能的多媒體無線寬帶互聯(lián)網(wǎng)終端。智能手機(jī)的幾個(gè)代表:

iphoneAndroidWMSymbian、Palm、Blackberry算不上真正的智能手機(jī)。智能機(jī)的特征標(biāo)準(zhǔn)操作系統(tǒng)(Windows、Linux、MacOS)。第三方軟件擴(kuò)展能力強(qiáng),且形成行業(yè)標(biāo)準(zhǔn),有強(qiáng)大的第三方軟件陣容。(應(yīng)用、辦公、流媒體、游戲)主流CPU架構(gòu),程序存放在微硬盤里,在DRAM中運(yùn)行。無線及網(wǎng)絡(luò)能力強(qiáng)(WIFI、GSM/3G)。流行(大屏觸摸、高像素Camera、GPS、CMMB、sensors、時(shí)尚外型)。2.Android概念A(yù)ndroid簡(jiǎn)介Android是Google在2007年11月5日公布的手機(jī)系統(tǒng)平臺(tái)。2008年11月正式發(fā)布。該平臺(tái)基于Linux,Java作為應(yīng)用程序標(biāo)準(zhǔn)。早期由Google,后由開放手機(jī)聯(lián)盟開發(fā)。為了推廣此技術(shù),Google和其它幾十個(gè)手機(jī)相關(guān)公司建立了開放手機(jī)聯(lián)盟(OpenHandsetAlliance,簡(jiǎn)稱OHA)。用Android平臺(tái)開發(fā)出來的手機(jī),統(tǒng)稱gphone。Android典型UIAndroid的特征Android是開源的。Android不單純只是操作系統(tǒng)

1.經(jīng)過Google剪裁和優(yōu)化的LinuxKernel。

2.經(jīng)過Google修改的Java虛擬機(jī)Dalvik。這個(gè)虛擬機(jī)并不是Sun的J2ME,而是基于ApacheHarmony虛擬機(jī)版本進(jìn)行改良而來,能夠提供比J2ME高得多的執(zhí)行性能。

3.大量立即可用的類庫和應(yīng)用軟件。如:電話系統(tǒng),瀏覽器WebKit,Email,數(shù)據(jù)庫SQLite,多媒體庫。

4.可以直接使用Google很多的在線服務(wù)。如:軟件商店、網(wǎng)絡(luò)同步服務(wù)、搜索、地圖等。

5.Google提供了基于Eclipse的完整開發(fā)環(huán)境,模擬器,文檔,幫助,示例。圍繞Android形成了一個(gè)移動(dòng)手機(jī)聯(lián)盟,主要的手機(jī)廠商幾乎全部在列,對(duì)于已經(jīng)形成的一個(gè)龐大的產(chǎn)業(yè)聯(lián)盟的推動(dòng)力來說,影響力是非常驚人的。Android網(wǎng)站官方連結(jié):androidsourcecode:;;androidSDK:android使用者論壇:Android應(yīng)用論壇:

深入淺出Android教學(xué):Android優(yōu)勢(shì)Google的號(hào)召力,有眾多追隨者。強(qiáng)大的Android開放手機(jī)聯(lián)盟OHA。芯片、軟件、運(yùn)營(yíng)商。Android是全免費(fèi)的。Android是全開源的。Android的技術(shù)架構(gòu)合理,安全穩(wěn)定,且前瞻性好。3.Android軟件Android源碼目錄結(jié)構(gòu)

|--bionic

//Android的仿生庫,包含了一些基礎(chǔ)庫,其存在的意義在于其可規(guī)避GPL

|--bootable

//啟動(dòng)和恢復(fù)相關(guān)的代碼和工具

|--build

//Android工程編譯的規(guī)則腳本,是其建立Android系統(tǒng)的核心

|--dalvik

//Android自有的JVM

|--development//程序開發(fā)所需要的模板和工具

|--external

//第三方的一些軟件和庫

|--frameworks

//應(yīng)用程序框架

|--hardware

//與硬件相關(guān)的庫

|--kernel

//Android的linuxkernel2.6.28(9)

|--Makefile

//Makefile文件入口

|--packages

//Android應(yīng)用程序

|--prebuilt

//各種平臺(tái)下編譯所需的腳本和交叉編譯工具

|--system

//Android底層的系統(tǒng)接口和工具Android架構(gòu)Applications電話類:通話、聯(lián)系人、信息、SIM卡管理等。通訊類:www瀏覽器、email等。服務(wù)類:Googlemarket、GoogleSearch、GoogleMap、DataSync等。多媒體類:拍照、圖片庫、音樂播放、視頻播放等。其它:桌面、設(shè)置、日程、計(jì)算器、時(shí)鐘、widgets等。以上應(yīng)用已基本滿足手機(jī)功能。Framework隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng),其中包括;豐富而又可擴(kuò)展的視圖(Views),可以用來構(gòu)建應(yīng)用程序,它包括列表(lists),網(wǎng)格(grids),文本框(textboxes),按鈕(buttons),甚至可嵌入的web瀏覽器。內(nèi)容提供器(ContentProviders)使得應(yīng)用程序可以訪問另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫),或者共享它們自己的數(shù)據(jù)。資源管理器(ResourceManager)提供非代碼資源的訪問,如本地字符串,圖形,和布局文件(layoutfiles)。通知管理器(NotificationManager)使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。活動(dòng)管理器(ActivityManager)用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。Libraries

Android包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過Android應(yīng)用程序框架為開發(fā)者提供服務(wù)。

媒體庫-基于PacketVideoOpenCORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時(shí)支持靜態(tài)圖像文件。編碼格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。

SurfaceManager-對(duì)顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提供了2D和3D圖層的無縫融合。

LibWebCore-一個(gè)最新的web瀏覽器引擎用,支持Android瀏覽器和一個(gè)可嵌入的web視圖。

SGL-底層的2D圖形引擎

3Dlibraries-基于OpenGLES1.0APIs實(shí)現(xiàn);該庫可以使用硬件3D加速(如果可用)或者使用高度優(yōu)化的3D軟加速。

FreeType-位圖(bitmap)和矢量(vector)字體顯示。

SQLite-一個(gè)對(duì)于所有應(yīng)用程序可用,功能強(qiáng)勁的輕型關(guān)系型數(shù)據(jù)庫引擎。AndroidRuntime

Android包括了一個(gè)核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能。每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例。Dalvik被設(shè)計(jì)成一個(gè)設(shè)備可以同時(shí)高效地運(yùn)行多個(gè)虛擬系統(tǒng)。Dalvik虛擬機(jī)執(zhí)行(.dex)的Dalvik可執(zhí)行文件,該格式文件針對(duì)小內(nèi)存使用做了優(yōu)化。同時(shí)虛擬機(jī)是基于寄存器的,所有的類都經(jīng)由JAVA編譯器編譯,然后通過SDK中的“dx”工具轉(zhuǎn)化成.dex格式由虛擬機(jī)執(zhí)行。

Dalvik虛擬機(jī)依賴于linux內(nèi)核的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。Linux內(nèi)核

Android的核心系統(tǒng)服務(wù)依賴于Linux2.6.28(9)內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模塊。

Linux內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。重點(diǎn)把握Linux要點(diǎn)如何把握linux原理機(jī)制源碼結(jié)構(gòu)開發(fā)工具開發(fā)模式編譯配置驅(qū)動(dòng)開發(fā)應(yīng)用開發(fā)下載運(yùn)行DEBUG網(wǎng)絡(luò)資源工作量評(píng)估學(xué)會(huì)使用Linux命令基本命令:ls,rm,cp,mkdir,find,cd,pwd,cat,mv,rmdir,touch,tar,vi,adduser,passwd,smbpasswd,chmod,chown,ln等命令在哪里?whereisxxx尋求幫助:mancommadorfunctionman2functionLinux系統(tǒng)簡(jiǎn)易狀態(tài)圖Kernel(zipbin)Blob(armbin)OBM(armbin)Rootfs(cramfs)System(cramfs)User(VFAT)KernelOBMDisk:DRAM:123456系統(tǒng)啟動(dòng)過程上電gotoobminitloadobm到DRAM判斷下載or啟動(dòng):下載:initflash&usb從pc下載程序到本地flash分區(qū)。啟動(dòng):loadblob到DRAMgotoblobinitlcdloadkernel到DRAM&傳參數(shù)gotokernelkernel自解壓startinitosinitfsloadrootfsstartinitprocessmountfilesysreadinit.rc(或者rc.local)startapplications….Root分區(qū)結(jié)構(gòu)Androidsystem分區(qū)結(jié)構(gòu)OBM單任務(wù)系統(tǒng)CPU配置(clk、gpio、stack)、中斷向量表、DRAM初始化、Flash初始化、Download管理(USB驅(qū)動(dòng))、開關(guān)機(jī)處理、待機(jī)處理等。必須規(guī)避libc、heap等高級(jí)C函數(shù)調(diào)用。盡量多掌握ARMCPU架構(gòu)及匯編指令。標(biāo)準(zhǔn)的Android/WM系統(tǒng),BOOT代碼都不能直接運(yùn)用在產(chǎn)品中,需要做較大的代碼改動(dòng)。調(diào)試工具:ICE、Trace32Blob單任務(wù)系統(tǒng)初始化LCD,顯示LOGO。加載kernel,傳遞參數(shù)。工程模式切換入口。BIOS測(cè)試。調(diào)試工具:ICE、Trace32Kernel進(jìn)程:進(jìn)程間保護(hù),進(jìn)程間不能直接訪問線程:屬于進(jìn)程的特殊子進(jìn)程,線程間能直接訪問分時(shí)/實(shí)時(shí):編譯選項(xiàng)文件系統(tǒng):支持幾乎所有文件系統(tǒng)類型,文件名區(qū)分大小寫。驅(qū)動(dòng)模塊:標(biāo)準(zhǔn)文件系統(tǒng)接口內(nèi)核配置:makemenuconfig編譯:makezImageKernelKernelKernel要點(diǎn)把握兩大塊:Driver:driver,sound。字符設(shè)備,塊設(shè)備等。Arch:非標(biāo)準(zhǔn)設(shè)備,電源管理等。比較難的模塊:聲卡、camera、pm、USB。KernelAndroid中的新特性:Binder(IPC):實(shí)現(xiàn)應(yīng)用程序之間的遠(yuǎn)程調(diào)用。Pmem:獨(dú)立的連續(xù)物理內(nèi)存管理模塊,速度快。SMD(ShareMemoryDevice):獨(dú)立的共享內(nèi)存模塊。KernelKernel源碼:

Kernel論壇:

Kernel調(diào)試工具:kgdb:SystemTap:Kprobes:l-kprobes.htmlprintk函數(shù)、IDE、Trace32

Root文件系統(tǒng)幾個(gè)需要多關(guān)注的目錄:/:根目錄,存放子目錄和init、init.rc或rc.localdev:存放驅(qū)動(dòng)設(shè)備文件etc:存放系統(tǒng)及用戶配置文件proc:系統(tǒng)狀態(tài)信息bin:基本Linux命令sbin:外掛的Linux命令lib:系統(tǒng)及應(yīng)用所需要的動(dòng)態(tài)庫.sosdcard:掛接T-flash卡分區(qū)system:掛接Android程序分區(qū)data:掛接user分區(qū)文件系統(tǒng)要點(diǎn)通常這三個(gè)文件系統(tǒng)要重點(diǎn)把握:Cramfs、VFAT、yaffs。也有廠家使用ext2.文件系統(tǒng)的掉電、壞塊管理很難處理。開發(fā)三部的經(jīng)驗(yàn):引入fmm(flashmemorymanager)??山鉀Q此類問題。應(yīng)用程序啟動(dòng)過程shell-->forkchildprocess-->callexec-->find&openappfile-->mmaptoprocessspace-->searchelfloader(ld-linux.so.2)-->gotold-linux.so.2-->ld-linux.so.2running-->searchapprelationlibrariesandload-->gotoapp-->apprunning-->main-->...-->finish-->僵尸進(jìn)程(zombie)-->systemcleanupLinux常用debug工具工具

用途gcc 用編譯器排除buggdb 調(diào)試工具lint

靜態(tài)代碼分析工具,對(duì)C++支持不太好dmsg

可以找到程序崩潰時(shí)的一些信息top 查看進(jìn)程的各種信息vmstat 查看系統(tǒng)iotcpdump 跟蹤網(wǎng)絡(luò)包ethereal

圖形化網(wǎng)絡(luò)抓包工具IperfTCP/IP吞吐量工具lsof 查看進(jìn)程打開的文件,例如查文件描述符泄漏Iozone測(cè)文件系統(tǒng)性能工具ps 查看進(jìn)程信息(例如進(jìn)程當(dāng)前執(zhí)行的指令)oprofile性能分析工具,查看函數(shù)開銷等bootchart圖形化的效率分析工具gprof 程序性能strace 跟蹤進(jìn)程使用的系統(tǒng)調(diào)用和信號(hào)valgrind

檢查內(nèi)存訪問錯(cuò)誤等purify 檢查內(nèi)存訪問錯(cuò)誤、代碼覆蓋率等,商業(yè)軟件linux開發(fā)指導(dǎo)文檔Android要點(diǎn)如果把握android原理機(jī)制源碼結(jié)構(gòu)開發(fā)工具開發(fā)模式編譯配置應(yīng)用開發(fā)下載運(yùn)行DEBUG網(wǎng)絡(luò)資源工作量評(píng)估AndroidSurfaceManger兩個(gè)地方需要做較大的改動(dòng):圖層疊加overlay處理:應(yīng)用Windows、videoyuv層、videoOSD等的疊加。2D加速:拷貝、旋轉(zhuǎn)、alpha疊加、縮放、淡入淡出等。AndroidMediaFramework要修改的地方:Opencore版本升級(jí)問題。添加codec。AndroidTelephonyManger需要修改的地方:根據(jù)MODEM特性,做ATcommand和流程的修改。根據(jù)應(yīng)用的需要,修改業(yè)務(wù)邏輯。通話和數(shù)據(jù)網(wǎng)絡(luò)的穩(wěn)定性。Framework其它常改動(dòng)的地方:與設(shè)備相關(guān)的調(diào)用及邏輯。如:電源管理、sensor、I/O等。Android應(yīng)用開發(fā)重點(diǎn)Android功能不足的地方:藍(lán)牙、J2MEJava、文件管理器、輸入法等。OPPO重點(diǎn)應(yīng)用需求:聯(lián)系人、短信、桌面、輸入法、圖片庫、拍照、音視頻、其它應(yīng)用規(guī)劃。Android應(yīng)用程序機(jī)理Android應(yīng)用開發(fā)詳情《高煥堂android應(yīng)用軟體架構(gòu)設(shè)計(jì)》4.Android軟件開發(fā)環(huán)境Android編譯環(huán)境1

TerminalTerminalTerminal

局域網(wǎng)

Linux編譯服務(wù)器SVN數(shù)據(jù)庫服務(wù)器優(yōu)點(diǎn):本地計(jì)算機(jī)負(fù)荷小,不需要增加硬盤和內(nèi)存缺點(diǎn):編譯服務(wù)器負(fù)荷大Android編譯環(huán)境2

Linux虛擬機(jī)Linux虛擬機(jī)

Linux虛擬機(jī)

局域網(wǎng)

Linux版本編譯計(jì)算機(jī)SVN數(shù)據(jù)庫服務(wù)器優(yōu)點(diǎn):不需要配置高性能的編譯服務(wù)器缺點(diǎn):本地計(jì)算機(jī)負(fù)荷大,需要增加硬盤和內(nèi)存Android編譯計(jì)算機(jī)配置操作系統(tǒng):Fedora,Ubuntu或debain虛擬機(jī)硬盤:80GB虛擬機(jī)內(nèi)存:2GB(1Glinux,1GWindows)虛擬機(jī)CPU:雙核編譯服務(wù)器硬盤SCSI:大于500GB編譯服務(wù)器內(nèi)存:4GB編譯服務(wù)器CPU:4GHz&四核5.Android硬件CPU選型可選廠家及方案:m7K&8K系列(AP+3G)TIOMAP3系列(AP)MarvellPXA3XX&MMP2系列(AP、AP+2G、AP+3G)Samsung64XX&PC1XX系列(AP)FreeScaleiMX3&iMX5系列(AP)MTKMT6516(AP+2G)DRAM要求超低端機(jī)型,可考慮使用128MB典型配置:256MB高級(jí)配置:512MB存儲(chǔ)空間要求程序空間

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論