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

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

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

    L遷客

    技術博客
    隨筆 - 1, 文章 - 12, 評論 - 1, 引用 - 0
    數據加載中……

    Android開發應該掌握的28大內容和10大建議

    Android開發應該掌握的28大內容和10大建議

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

    1 Android操作系統概述
    1. Android
    系統架構。
               2. Android
    利用設計理念。
               3. Android
    開源知識。
               4. Android
    參考網站與權威信息。
    2 Android SDK及其開發環境搭建
               1. Android SDK
    的版本發布。
               2. ADT
    插件的安裝和更新。
               3. Android
    利用程序架構。
               4.
    建立第一個Android項目(HelloAndroid)
               5.
    通過Eclipse導入一個開源項目
               6.
    可視化的界面開發工具
               7.
    布置利用程序到Android模仿器或手機
    3Android源代碼開發環境搭建與源碼結構分析
               1.
    開發系統主機環境搭建。
              2.
    安裝軟件包Required Packages
               3.Ubuntu 6.06 (Dapper)

              4. Ubuntu 8.04

              5. Ubuntu 7.10

               6.Install javva

               7.
    源碼結構分析Android source (kernel / platform/application)
              8. Android build system

              9. Android bring up

    4 Android 利用程序設計模型
               1. drawable

               2. layout

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

               6. Android.mk

               7. Activity

               8. Intent

               9. Service

               10.ContentProvider

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

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

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

    8 Android 系統服務
               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.
    如何添加一個新系統Service并開放API
               16.
    要害服務。
               17. Android
    系統啟動流程。
          

    (二)成為Android高手必須掌握的20項進階要求

    ARM平臺 Android 移植與驅動核心開發
           Android
    嵌入式智能操作系統是基于Linux內核和驅動的,對于HTC、華為等公司開發Android操作系統時,需要專門將Android移植到特定硬件平臺下,同時將必要的驅動進行編寫及開發。本課程旨在讓學員成為Android的核心層開發者,讓學員在這種嵌入式設備廠商中謀得核心開發人員的職位。
           1. Android
    系統體系及移植相關工具
               1.1Android
    操作系統體系結構介紹。
                   Android Linux
    內核移植介紹。
                   
    文件系統,toolbox等移植。
                  
    存儲驅動移植。
                 Bootloader
    相應方案與移植。
                   Android
    虛擬器Dalvik移植介紹。
               1.2ARM
    處理器介紹。
                   ARMv5TJS

                   ARM
    中斷處理。
                   ARM
    體系結構與ARM處理器的體系結構。
                   IP
    核、芯片與開發板。
                   ARM
    處理器結構處理器模式。
                      .
    寄放器。
                      .
    流水線結構。
                   C
    語言內嵌匯編款式與編程實例。
               1.3ARM
    指令系統。
                    .
    算術邏輯指令。
                    .
    指令對狀態寄放器的影響。
                    .
    對比指令。
                    .
    分支指令。
                    .
    移位。
                    .
    指令位圖。
                    .
    辨認機器指令。
               1.4
    內存造訪與內存把持。
                   .
    數據總線與地址總線的應用與實例。
                   .STR/LDR

               1.5ARM
    歷程調用標準。
                   .LDM/STM

                   .
    反匯編。
                   .APCS

                   .C
    語言函數與匯編的互相調用。
               
    【案例】應用Android Linux patch進行Linux內核的構建
           2. AndroidLinux
    內核移植與核心開發
               2.1ARM
    處理器的Android系統構建。
               2.2
    輸入輸出設備驅動移植。
               2.3
    存儲設備nand flashMMC/SD卡驅動移植。
               2.4Framebuffer
    移植。
               2.5 Touchscreen
    移植
               2.6 Open Binder IPC
    移植。
          
    【案例】
                   2.7
    ARM處理器上移植Android實驗
                2.8
    編寫Nand flash驅動。
                 2.9
    移植Framebuffer驅動。
                 2.10
    硬件相關部分(鍵盤、觸摸屏、LCD等)。
           3. Android
    相關環境庫、以及Bionic系統移植
               3.1libc
    移植。
               3.2libm
    移植。
               3.3libdl
    移植。
               3.4libm
    移植。
               3.5 busybox, toolbox
    移植。
          
    【案例】
                   1.
    移植glibc
                  2.
    移植busyboxtoolbox
           4. Android Dalvik
    移植一
             4.1 JNI Call Bridge
    相關原理
               4.2 dx, dalvitvm
    原理和應用。
              4.3 Dalvik
    指令款式。
               4.4 Dalvik
    履行款式dex
               4.5 Java
    字節碼款式。
           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
    工具的應用。
               6.3label
    標簽的作用。
               6.4
    數據與代碼的散播。
           7.
    鏈接腳本ld-script
              7.1
    段地址的斷定。
              7.2
    編寫ld-script
              7.3 ELF
    款式與libc函數庫的關系。
           8.
    時序電路根基
               8.1
    電平信號。
              8.2
    電路圖分析。
               8.3
    時序圖分析。
               8.4datasheet
    查看。
               8.5s3c2440
    的外圍器件結構。
               8.6GPIO
    操作。
           9. AMBA
    總線標準
              9.1 AMBA
    總線標準
              9.2 FCLK/HCLK/PCKL
    頻率分配與設置。
              9.3 Watchdog
    計時操作。
              9.4 UART
    操作。
              9.5 ARM
    中斷體系。
              9.6
    異常向量表。
              9.7 ARM
    模式切換。
               9.8 ARM
    中斷把持器。
               9.9
    軟中斷。
               9.10 Linux
    系統調用的實現。
           10. Nand Flash
    把持器
               10.1 Flash
    原理。
               10.2 Nand
    把持器原理及時序分板。
               10.3k9f1208
    時序分析。
           11.
    內存把持器
                11.1 s3c2440
    物理地址散播
                11.2 SDRAM
    原理與時序。
                11.3
    內存把持器的物理連接。
                11.4
    地址對齊。
                11.5 SRAM
    造訪。
           12.
    內存管理單元
                12.1 MMU
    的原理。
                 12.2ARM
    協處理器指令。
                 12.3 section
    模式。
                 12.4 small page
    模式
                 12.5 I & D TLBs

                 12.6 I & DCache

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

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

    1Q:如何成為高手?

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

      1)學會懶惰

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

      bInventing the Wheel(發明輪子)

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

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

      2)精通Android體系架構、MVC、常見的設計模式、控制反轉(IoC)

      3)編寫可重用、可擴展、可維護、靈活性高的代碼

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

      5)學會至少一門服務器端開發技術

      2QJNI是什么?

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

      使用java與本地已編譯的代碼交互,通常會喪失平臺可移植性。但是,有些情況下這樣做是可以接受的,甚至是必須的,比如,使用一些舊的庫,與硬件、操作系統進行交互,或者為了提高程序的性能。JNI標準至少保證本地代碼能工作在任何Java 虛擬機實現下。

      3QAndroidLinux的區別?

      AAndroid是一個專門針對移動設備的軟件集,包括一個操作系統,中間件和一些重要的應用程序。Android SDK 提供了在Android平臺使用java語言進行android 應用程序開發必須的工具和API接口。Android 系統架構除了Linux2.6內核之外,還提供了豐富的lib和適用于java的運行時環境(很重要的一點是Dalvik虛擬機,類似于JVM)、應用程序框架和核心應用。在此基礎之上可以快速開發應用程序。

      linux內核像是核心技術支持,而google 將其商業化于移動設備上。android上開發應用程序和Windows MFC開發有些類似。

      4QSDK升級了,如何更新SDK?

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

      5Q:如何進入Recovery模式

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

      6QAndroid bionic移植需要注意的事項

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

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

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

      復制 include/asm-generic bionic/libc/kernel/original folder

      復制 include/linux bionic/libc/kernel/original folder

      復制 include/mtd bionic/libc/kernel/original folder

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

      $ cd android/bionic/libc/kernel

      $ tools/update_all.py

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

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

      5)復制平臺相關的頭文件:

      復制 linux v2.6.31 平臺相關的 asm 目錄到指定的路徑,方法如下:

      復制 arch/arm/include/asm android/bionic/libc/kernel/arch-arm/

      復制 arch/x86/include/asm android/bionic/libc/kernel/arch-x86/

      6) v2.6.29 bionic/libc/kernel/common/linux 復制一下的頭文件到新的 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:指的是某些公司的產品型號,主要是一些針對硬件配置的東西,比如radio 方面的,若是采用TI ,這里面會有TI提供的一些RIL方面的接口等。

      8Q:編譯Android源碼和編譯Android內核有什么區別?

      A:其實沒什么區別,就多了幾個android特有的驅動,最重要的是binder

      9Q:如何獲取手機和存儲卡上的圖片?

      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:系統自身已經實現了雙緩沖,也就是說為了避免重影,必須連續onDraw兩次,或者是對上一次onDraw里面畫臟的部分進行修復。

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

     

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


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 男人的好看免费观看在线视频| 免费毛片a线观看| 韩国二级毛片免费播放| 亚洲熟妇丰满xxxxx| 国产在线国偷精品产拍免费| 亚洲人配人种jizz| 成人免费淫片在线费观看 | 国产在线ts人妖免费视频| 亚洲狠狠色丁香婷婷综合| 国产成人免费一区二区三区| 免费人成动漫在线播放r18| 亚洲一区二区三区在线视频| 国产精品九九久久免费视频| 亚洲色偷偷综合亚洲AVYP| 国产成人AV片无码免费| 久久久久亚洲AV无码麻豆| 成人免费午夜无码视频| 亚洲男人的天堂网站| 亚洲乱亚洲乱少妇无码| 人人揉揉香蕉大免费不卡| 亚洲乱码卡一卡二卡三| 国产乱人免费视频| 国产成人免费ā片在线观看老同学 | 免费人成激情视频| 国产精品福利片免费看| 久久久婷婷五月亚洲97号色 | 国产乱子伦精品免费女| 你是我的城池营垒免费看| 亚洲人成片在线观看| 免费黄色毛片视频| 黄床大片免费30分钟国产精品| 久久久久亚洲AV成人片| 日韩毛片免费在线观看| 中文字幕免费播放| 亚洲啪啪免费视频| 亚洲人成色7777在线观看不卡 | 日韩吃奶摸下AA片免费观看| 羞羞漫画登录页面免费| 久久精品国产亚洲av四虎| 在线免费观看一级毛片| a国产成人免费视频|