<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    L遷客

    技術(shù)博客
    隨筆 - 1, 文章 - 12, 評(píng)論 - 1, 引用 - 0
    數(shù)據(jù)加載中……

    Android開發(fā)應(yīng)該掌握的28大內(nèi)容和10大建議

    Android開發(fā)應(yīng)該掌握的28大內(nèi)容和10大建議

    (一)成為Android高手必須掌握的8項(xiàng)基本要求

    1 Android操作系統(tǒng)概述
    1. Android
    系統(tǒng)架構(gòu)。
               2. Android
    利用設(shè)計(jì)理念。
               3. Android
    開源知識(shí)。
               4. Android
    參考網(wǎng)站與權(quán)威信息。
    2 Android SDK及其開發(fā)環(huán)境搭建
               1. Android SDK
    的版本發(fā)布。
               2. ADT
    插件的安裝和更新。
               3. Android
    利用程序架構(gòu)。
               4.
    建立第一個(gè)Android項(xiàng)目(HelloAndroid)
               5.
    通過Eclipse導(dǎo)入一個(gè)開源項(xiàng)目
               6.
    可視化的界面開發(fā)工具
               7.
    布置利用程序到Android模仿器或手機(jī)
    3Android源代碼開發(fā)環(huán)境搭建與源碼結(jié)構(gòu)分析
               1.
    開發(fā)系統(tǒng)主機(jī)環(huán)境搭建。
              2.
    安裝軟件包Required Packages
               3.Ubuntu 6.06 (Dapper)

              4. Ubuntu 8.04

              5. Ubuntu 7.10

               6.Install javva

               7.
    源碼結(jié)構(gòu)分析Android source (kernel / platform/application)
              8. Android build system

              9. Android bring up

    4 Android 利用程序設(shè)計(jì)模型
               1. drawable

               2. layout

               3. values
    strings.xmlcolors.xmlstyle.xml arrays.xml等)。
               4. R.java
    分析及應(yīng)用
               5. AndroidManifest.xml

               6. Android.mk

               7. Activity

               8. Intent

               9. Service

               10.ContentProvider

    5 Android 利用程序界面()
               1. TextView
    的應(yīng)用。
               2. drawable
    的應(yīng)用
               3.
    引用Drawable色彩常數(shù)及背風(fēng)景。
               4. CharSequence
    數(shù)據(jù)類型與ResourceID利用。
               5. DisplayMetrics
    的應(yīng)用。
               6. Style
    樣式的定義。
               7. Button
    事件處理。
               8. setContentView
    的利用。
               9. Intent
    對(duì)象的應(yīng)用。
               10. Bundle
    對(duì)象的實(shí)現(xiàn)。
               11. startActivityForResult
    法子。
               12. AlertDialog
    窗口。
               13. Button
    TextView的交互。
               14. Typeface
    對(duì)象應(yīng)用。
               15. Gallery
    對(duì)象。
               16.
    多按鈕利用。
               17. Menu
    功效菜單程序設(shè)計(jì)。
               18. ProgressDialog
    與線程利用。
               19.
    動(dòng)態(tài)產(chǎn)生按鈕并最大化。
               20.
    選擇功效的對(duì)話框。
               21. Android
    主題(Theme)實(shí)現(xiàn)。
               22.
    支撐多種分手率的屏幕。
    6 Android利用程序界面(二)
               1. EditText
    setOnKeyListener事件。
               2.ImageButton
    的焦點(diǎn)及事件處理。
               3. Toast
    對(duì)象的應(yīng)用。
               4. CheckBox
    isChecked屬性。
               5.
    多選項(xiàng)CheckBox的利用。
               6. RadioGroup
    組與onCheckedChanged事件。
               7. ImageView
    的堆棧利用。
               8. Spinner
    setDropDownViewResource
               9. ArrayList
    Widget的依附性。
               10. Gallery
    與衍生BaseAdapter容器。
               11. JavaI/O
    的利用。
               12.ImageButton
    選擇特效。
               13. AutoCompleteTextView
    與數(shù)組。
               14. AnalogClock
    DigitalClock的原理。
               15. DatePicker
    TimePicker利用。
               16. ImageView
    點(diǎn)擊事件與透明度處理。
               17. ProgressBar
    Handler的整合利用。
               18. GridView
    ArrayAdapter設(shè)計(jì)。
               19. ListView
    的布局。
               20. ListActivity
    Menu整合技術(shù)。
               21. JavaI/O
    ListActivity的聯(lián)合。
               22.
    應(yīng)用decodeFile法子。
               23.
    運(yùn)用Matrix對(duì)象來縮放圖文件。
               24. Bitmap
    Matrix旋轉(zhuǎn)ImageView
               25. RadioButtonID

               26.
    對(duì)話窗口上的ICON圖標(biāo)。
    7Android 利用交互與手機(jī)模塊把持
               1. PendingIntent
    AlarmManager
               2. PendingIntent
    SmsManager
               3. Intent
    Email
               4.
    數(shù)據(jù)存儲(chǔ)法子。
               5. NotificationManager
    Notification
               6. Adapter
    對(duì)象與Cursor
               7. TelephonyManager
    的利用。
               8. RunningTaskInfo
    的利用。
               9. Provider.Contact
    的應(yīng)用。
               10.Provider.Calendar
    的應(yīng)用。
               11. Service
    Runnable整合并用。
               12.BroadcastReceiver
    Intent
               13. receiver
    intent-filter
               14. Android
    網(wǎng)絡(luò)編程。
               15. HTTP
    懇求與連接。
               16. WebView.loadUrl

               17. Webkit
    WebCore
               18. HttpURLConnection
    URLConnection和運(yùn)行線程。
               19. Runnable
    混搭SurfaceView
               20. Google ApI

    8 Android 系統(tǒng)服務(wù)
               1. Activity Manager

               2. Windows Manager

               3. Surface Manager(surface flinger)

               4. Package Manager

               5. Telephony Manager

               6. Content Provider

               7.Resource Manager

               8. AssetManager

               9. View System

               10.Location Manager

               11. Notification Manager

               12.AlarmManager

               13. BatteryManager

               14. HardwareManage

               15.
    如何添加一個(gè)新系統(tǒng)Service并開放API
               16.
    要害服務(wù)。
               17. Android
    系統(tǒng)啟動(dòng)流程。
          

    (二)成為Android高手必須掌握的20項(xiàng)進(jìn)階要求

    ARM平臺(tái) Android 移植與驅(qū)動(dòng)核心開發(fā)
           Android
    嵌入式智能操作系統(tǒng)是基于Linux內(nèi)核和驅(qū)動(dòng)的,對(duì)于HTC、華為等公司開發(fā)Android操作系統(tǒng)時(shí),需要專門將Android移植到特定硬件平臺(tái)下,同時(shí)將必要的驅(qū)動(dòng)進(jìn)行編寫及開發(fā)。本課程旨在讓學(xué)員成為Android的核心層開發(fā)者,讓學(xué)員在這種嵌入式設(shè)備廠商中謀得核心開發(fā)人員的職位。
           1. Android
    系統(tǒng)體系及移植相關(guān)工具
               1.1Android
    操作系統(tǒng)體系結(jié)構(gòu)介紹。
                   Android Linux
    內(nèi)核移植介紹。
                   
    文件系統(tǒng),toolbox等移植。
                  
    存儲(chǔ)驅(qū)動(dòng)移植。
                 Bootloader
    相應(yīng)方案與移植。
                   Android
    虛擬器Dalvik移植介紹。
               1.2ARM
    處理器介紹。
                   ARMv5TJS

                   ARM
    中斷處理。
                   ARM
    體系結(jié)構(gòu)與ARM處理器的體系結(jié)構(gòu)。
                   IP
    核、芯片與開發(fā)板。
                   ARM
    處理器結(jié)構(gòu)處理器模式。
                      .
    寄放器。
                      .
    流水線結(jié)構(gòu)。
                   C
    語言內(nèi)嵌匯編款式與編程實(shí)例。
               1.3ARM
    指令系統(tǒng)。
                    .
    算術(shù)邏輯指令。
                    .
    指令對(duì)狀態(tài)寄放器的影響。
                    .
    對(duì)比指令。
                    .
    分支指令。
                    .
    移位。
                    .
    指令位圖。
                    .
    辨認(rèn)機(jī)器指令。
               1.4
    內(nèi)存造訪與內(nèi)存把持。
                   .
    數(shù)據(jù)總線與地址總線的應(yīng)用與實(shí)例。
                   .STR/LDR

               1.5ARM
    歷程調(diào)用標(biāo)準(zhǔn)。
                   .LDM/STM

                   .
    反匯編。
                   .APCS

                   .C
    語言函數(shù)與匯編的互相調(diào)用。
               
    【案例】應(yīng)用Android Linux patch進(jìn)行Linux內(nèi)核的構(gòu)建
           2. AndroidLinux
    內(nèi)核移植與核心開發(fā)
               2.1ARM
    處理器的Android系統(tǒng)構(gòu)建。
               2.2
    輸入輸出設(shè)備驅(qū)動(dòng)移植。
               2.3
    存儲(chǔ)設(shè)備nand flashMMC/SD卡驅(qū)動(dòng)移植。
               2.4Framebuffer
    移植。
               2.5 Touchscreen
    移植
               2.6 Open Binder IPC
    移植。
          
    【案例】
                   2.7
    ARM處理器上移植Android實(shí)驗(yàn)
                2.8
    編寫Nand flash驅(qū)動(dòng)。
                 2.9
    移植Framebuffer驅(qū)動(dòng)。
                 2.10
    硬件相關(guān)部分(鍵盤、觸摸屏、LCD等)。
           3. Android
    相關(guān)環(huán)境庫、以及Bionic系統(tǒng)移植
               3.1libc
    移植。
               3.2libm
    移植。
               3.3libdl
    移植。
               3.4libm
    移植。
               3.5 busybox, toolbox
    移植。
          
    【案例】
                   1.
    移植glibc
                  2.
    移植busyboxtoolbox
           4. Android Dalvik
    移植一
             4.1 JNI Call Bridge
    相關(guān)原理
               4.2 dx, dalvitvm
    原理和應(yīng)用。
              4.3 Dalvik
    指令款式。
               4.4 Dalvik
    履行款式dex
               4.5 Java
    字節(jié)碼款式。
           5. Android Dalvik
    移植二
               5.1 Dalvik Library
    原理
               5.2 dalvit libcore
    核心庫移植。
               5.3 dalvit/vm/native
    移植。
               5.4 Dalvik Interpreter
    原理
               5.5 Dalvik Mterp

           6. ARMAT&T
    匯編
               6.1AT&T
    匯編語法詳解。
               6.2gas
    工具的應(yīng)用。
               6.3label
    標(biāo)簽的作用。
               6.4
    數(shù)據(jù)與代碼的散播。
           7.
    鏈接腳本ld-script
              7.1
    段地址的斷定。
              7.2
    編寫ld-script
              7.3 ELF
    款式與libc函數(shù)庫的關(guān)系。
           8.
    時(shí)序電路根基
               8.1
    電平信號(hào)。
              8.2
    電路圖分析。
               8.3
    時(shí)序圖分析。
               8.4datasheet
    查看。
               8.5s3c2440
    的外圍器件結(jié)構(gòu)。
               8.6GPIO
    操作。
           9. AMBA
    總線標(biāo)準(zhǔn)
              9.1 AMBA
    總線標(biāo)準(zhǔn)
              9.2 FCLK/HCLK/PCKL
    頻率分配與設(shè)置。
              9.3 Watchdog
    計(jì)時(shí)操作。
              9.4 UART
    操作。
              9.5 ARM
    中斷體系。
              9.6
    異常向量表。
              9.7 ARM
    模式切換。
               9.8 ARM
    中斷把持器。
               9.9
    軟中斷。
               9.10 Linux
    系統(tǒng)調(diào)用的實(shí)現(xiàn)。
           10. Nand Flash
    把持器
               10.1 Flash
    原理。
               10.2 Nand
    把持器原理及時(shí)序分板。
               10.3k9f1208
    時(shí)序分析。
           11.
    內(nèi)存把持器
                11.1 s3c2440
    物理地址散播
                11.2 SDRAM
    原理與時(shí)序。
                11.3
    內(nèi)存把持器的物理連接。
                11.4
    地址對(duì)齊。
                11.5 SRAM
    造訪。
           12.
    內(nèi)存管理單元
                12.1 MMU
    的原理。
                 12.2ARM
    協(xié)處理器指令。
                 12.3 section
    模式。
                 12.4 small page
    模式
                 12.5 I & D TLBs

                 12.6 I & DCache

                 12.7
    哈佛結(jié)構(gòu)的原理與實(shí)現(xiàn)。
           13. DMA
    直接內(nèi)存造訪的機(jī)制與應(yīng)用
               13.1 DMA
    的狀態(tài)機(jī)
                13.2 DMA
    的把持。
           14.
    觸摸屏接口與ADC接口 與實(shí)例
                14.1 ADC
    原理。
                14.1
    觸摸屏接口與把持。
           15. LCD
    把持器
                 15.1
    圖形顯示原理。
                 15.2 LCD
    把持器。
                 15.3 LCD
    時(shí)序。
                 15.4 LCD
    驅(qū)動(dòng)相關(guān)的框架與體系
            16. I2S
    音頻總線
                  16.1
    音頻硬件原理。
                  16.2 I2S
    時(shí)序。
                  16.3 s3c2440
    I2S的操作。
                  16.4
    音頻設(shè)備的裸驅(qū)動(dòng)討論。
           17. CS8900
    網(wǎng)卡把持
                  17.1
    邏輯鏈路層與MAC層。
                  17.2 CS8900
    原理與時(shí)序分析。
                  17.3
    后續(xù)網(wǎng)卡裸驅(qū)動(dòng)討論與體系結(jié)構(gòu)。
           18. TCP/IP
    協(xié)議棧移植,與網(wǎng)絡(luò)體系結(jié)構(gòu)
                 18.1 LwIP TCP/IP
    協(xié)議棧簡介
                 18.2 LwIP
    配置與編譯。
                 18.3 tftp
    配置與編譯。
           19. Bootloader
    原理與移植
                  19.1u-boot
    的配置、編譯。
                  19.2u-boot
    啟動(dòng)歷程分析。
                  19.3ARM-Linux
    的啟動(dòng)請(qǐng)求。
                  19.4 ARM-Linux kernel
    ld-sript分析
                  19.5 u-boot
    ARM-Linux的跳轉(zhuǎn)代碼分析
                  19.6
    應(yīng)用mkimage制作啟動(dòng)鏡像文件。
           20. ARM-Linux
    原理與移植
                  20.1ARM-Linux
    的配置、編譯。
                  20.2ARM-Linux
    啟動(dòng)代碼分析。
                  20.3ARM-Linux
    地址映射的關(guān)系。
                  20.4 Busybox
    的配置、編譯

    (三)成為Android高手的十個(gè)建議

    1Q:如何成為高手?

      A:成為一名真正的Android高手必須掌握和遵循的一些準(zhǔn)則:

      1)學(xué)會(huì)懶惰

      aDon"t Reinvent the Wheel(不要重復(fù)發(fā)明輪子)

      bInventing the Wheel(發(fā)明輪子)

      cDon"t Reinvent the Wheel(不要重復(fù)發(fā)明輪子)

      輪子理論,也即不要重復(fù)發(fā)明輪子,這是西方國家的一句諺語,原話是:Don"t Reinvent the Wheel不要重復(fù)發(fā)明輪子意思是企業(yè)中任何一項(xiàng)工作實(shí)際上都有人做過,我們所需要做的就是找到做過這件事情的人。拿到軟件領(lǐng)域中就是指有的項(xiàng)目或功能,別人已經(jīng)做過,我們需要用的時(shí)候,直接拿來用即可,而不要重新制造。

      2)精通Android體系架構(gòu)、MVC、常見的設(shè)計(jì)模式、控制反轉(zhuǎn)(IoC)

      3)編寫可重用、可擴(kuò)展、可維護(hù)、靈活性高的代碼

      4)高效的編寫高效的代碼

      5)學(xué)會(huì)至少一門服務(wù)器端開發(fā)技術(shù)

      2QJNI是什么?

      AJNIJava Native Interface的縮寫,中文為JAVA本地調(diào)用。從Java1.1開始,Java Native Interface(JNI)標(biāo)準(zhǔn)成為java平臺(tái)的一部分,它允許Java代碼和其他語言寫的代碼進(jìn)行交互。JNI一開始是為了本地已編譯語言,尤其是 CC++而設(shè)計(jì)的,但是它并不妨礙你使用其他語言,只要調(diào)用約定受支持就可以了。

      使用java與本地已編譯的代碼交互,通常會(huì)喪失平臺(tái)可移植性。但是,有些情況下這樣做是可以接受的,甚至是必須的,比如,使用一些舊的庫,與硬件、操作系統(tǒng)進(jìn)行交互,或者為了提高程序的性能。JNI標(biāo)準(zhǔn)至少保證本地代碼能工作在任何Java 虛擬機(jī)實(shí)現(xiàn)下。

      3QAndroidLinux的區(qū)別?

      AAndroid是一個(gè)專門針對(duì)移動(dòng)設(shè)備的軟件集,包括一個(gè)操作系統(tǒng),中間件和一些重要的應(yīng)用程序。Android SDK 提供了在Android平臺(tái)使用java語言進(jìn)行android 應(yīng)用程序開發(fā)必須的工具和API接口。Android 系統(tǒng)架構(gòu)除了Linux2.6內(nèi)核之外,還提供了豐富的lib和適用于java的運(yùn)行時(shí)環(huán)境(很重要的一點(diǎn)是Dalvik虛擬機(jī),類似于JVM)、應(yīng)用程序框架和核心應(yīng)用。在此基礎(chǔ)之上可以快速開發(fā)應(yīng)用程序。

      linux內(nèi)核像是核心技術(shù)支持,而google 將其商業(yè)化于移動(dòng)設(shè)備上。android上開發(fā)應(yīng)用程序和Windows MFC開發(fā)有些類似。

      4QSDK升級(jí)了,如何更新SDK?

      A:更新SDK是非常棘手的。當(dāng)一個(gè)新的SDK發(fā)布,必須是plugin也發(fā)布。更新容易出現(xiàn)的錯(cuò)誤是兩個(gè)版本都存在,而且都不正常。最終不得不卸載了它們并且重新安裝最新的一個(gè)。然后那個(gè)最新的SDK工作正常了。建議任何面對(duì)SDK或者plugin升級(jí)的人都采用相同的過程。簡單的卸載老版本,然后安裝新版本。不要升級(jí)。

      5Q:如何進(jìn)入Recovery模式

      A:每部Android設(shè)備進(jìn)入Recovery模式的方法不同。以Milestone為例:若bootloader90.78,按住鍵盤的“X”鍵,再按電源鍵開機(jī),看到moto的經(jīng)典logo即可放開此2鍵。等待出現(xiàn)一個(gè)三角形圖標(biāo),然后按住音量向上鍵+輕按拍照鍵,會(huì)出現(xiàn)四個(gè)選項(xiàng)。放開按鍵,可以用方向鍵選擇一個(gè)選項(xiàng)。作用分別為重啟,應(yīng)用update.zip,清除所有數(shù)據(jù)至出廠狀態(tài)、清除cache

      6QAndroid bionic移植需要注意的事項(xiàng)

      A:下面通過一個(gè)例子來說明移植binic需要做的事情(BIONIC使用的內(nèi)核頭文件從2.6.29 升級(jí)到 2.6.31)

      1)修改之前,先要備份 android/bionic

      2)按照下面方法復(fù)制linux kernel v2.6.31 頭文件:

      復(fù)制 include/asm-generic bionic/libc/kernel/original folder

      復(fù)制 include/linux bionic/libc/kernel/original folder

      復(fù)制 include/mtd bionic/libc/kernel/original folder

      3)運(yùn)行 tools/update_all.py 腳本,生成新的頭文件,方法如下.

      $ cd android/bionic/libc/kernel

      $ tools/update_all.py

      以上的操作將復(fù)制新的頭文件到 bionic/libc/kernel/common 目錄

      4)刪除 bionic/libc/kernel/original 目錄

      5)復(fù)制平臺(tái)相關(guān)的頭文件:

      復(fù)制 linux v2.6.31 平臺(tái)相關(guān)的 asm 目錄到指定的路徑,方法如下:

      復(fù)制 arch/arm/include/asm android/bionic/libc/kernel/arch-arm/

      復(fù)制 arch/x86/include/asm android/bionic/libc/kernel/arch-x86/

      6) v2.6.29 bionic/libc/kernel/common/linux 復(fù)制一下的頭文件到新的 android/bionic/libc/kernel/common/linux 目錄:

      android-alarm.h

      android-pmem.h

      android_power.h

      ashmem.h

      binder.h

      msm_adsp.h

      msm_audio.h

      msm_mdp.h

      keychord.h

      7)編譯

      $ cd android

      $ make -j4

      7QAndroid源碼下vendor目錄下文件的作用?

      A:指的是某些公司的產(chǎn)品型號(hào),主要是一些針對(duì)硬件配置的東西,比如radio 方面的,若是采用TI ,這里面會(huì)有TI提供的一些RIL方面的接口等。

      8Q:編譯Android源碼和編譯Android內(nèi)核有什么區(qū)別?

      A:其實(shí)沒什么區(qū)別,就多了幾個(gè)android特有的驅(qū)動(dòng),最重要的是binder

      9Q:如何獲取手機(jī)和存儲(chǔ)卡上的圖片?

      A: 

      protected String getAbsoluteImagePath(Uri uri)

      {

      // can post image

      String [] proj={MediaStore.Images.Media.DATA};

      Cursor cursor = managedQuery( uri,

      proj, // Which columns to return

      null, // WHERE clause; which rows to return (all rows)

      null, // WHERE clause selection arguments (none)

      null); // Order-by clause (ascending by name)

      int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

      cursor.moveToFirst();

      return cursor.getString(column_index);

    }

     

         10Q:如何使用雙緩沖?

         A:系統(tǒng)自身已經(jīng)實(shí)現(xiàn)了雙緩沖,也就是說為了避免重影,必須連續(xù)onDraw兩次,或者是對(duì)上一次onDraw里面畫臟的部分進(jìn)行修復(fù)。

    執(zhí)行Bitmap.createBitmap函數(shù)一般要花銷100-300ms的時(shí)間,要想提高它的效率,只能祈禱google能把android的代碼寫得更高效一些了(來自編程苦力

     

    posted on 2013-02-24 16:41 L遷客 閱讀(77) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 免费精品国产自产拍观看| 免费视频成人手机在线观看网址| a毛片全部免费播放| 国产aa免费视频| 97国免费在线视频| 亚洲AV无码久久久久网站蜜桃| 永久黄色免费网站| 亚洲欧洲精品久久| 久久九九久精品国产免费直播| 亚洲精品国产自在久久| 五月天婷婷精品免费视频| 亚洲性日韩精品一区二区三区| igao激情在线视频免费| 亚洲自偷自偷在线制服| 很黄很污的网站免费| 久久亚洲精品国产精品婷婷| 精品免费国产一区二区| 麻豆一区二区三区蜜桃免费| 亚洲综合色区在线观看| 又粗又大又黑又长的免费视频| 亚洲高清视频在线| 亚洲av永久无码精品漫画| 国产91色综合久久免费分享| 亚洲色精品三区二区一区| www.91亚洲| 免费视频成人手机在线观看网址| 亚洲AV成人片无码网站| 亚洲婷婷国产精品电影人久久| 人成午夜免费视频在线观看| 精品无码一级毛片免费视频观看| 亚洲精品无AMM毛片| 亚洲乱码日产精品a级毛片久久 | 亚洲一区免费观看| 亚洲三级中文字幕| 亚洲AV永久无码精品| 免费一看一级毛片| 99久久人妻精品免费二区| 亚洲精品无码成人| 国产亚洲AV夜间福利香蕉149| 日韩中文无码有码免费视频 | 亚洲成aⅴ人片在线观|