嵌入式android应用开发Framework学习指导.docx
《嵌入式android应用开发Framework学习指导.docx》由会员分享,可在线阅读,更多相关《嵌入式android应用开发Framework学习指导.docx(57页珍藏版)》请在冰豆网上搜索。
嵌入式android应用开发Framework学习指导
android应用开发Framework学习指导
对于AndroidFramework层的学习,在上一次的Android框架层学习指导中我们已经讲到了基础的结构和定义,但是对于Framework层的核心还有哪些呢?
1.在Android源码的base中,我们可以看到每个目录进去,都会有Java和jni两个文件夹,后者对于初入android框架的学习十分有帮助,如果你刚开始了解NDK和JNI相关的不妨读读google的代码,这对于代码风格和质量的提高都很有帮助。
2.对于NDK和JNI来说,编译我们需要一个好的环境,这里还是推荐基于unix架构的linux或MacOS编译,Android123推荐放弃Windows下的Cygwin和MingWin可以节省不少的时间,对于编译来说先掌握mk文件的结构比较重要,这里可以直接查看base目录中每个jni子目录的android.mk文件即可,在Linux下mk文件这种脚本方式对于过去一些VisualStudio用惯的可能感觉有些原始。
3.当然学习AndroidFramework可以帮助改进系统,定制自己的固件,部分核心的库是独立的external包,比如说SQLite、Webkit、zlib、libpng这些Android使用第三方开源的库都是在platform/external/xxx.git中。
xxx代表最终的库名。
4.对于部分的核心库,上次我们在Android框架层学习指导一文中由于篇幅并没有提到,其实在base目录下面的native中可以看到很多系统结构的定义和实现。
Android开发网推荐深入掌握Android这个namespace中的所有结构,这样的基础是十分必要的。
5.最后我们附上Base目录的结构图,希望对大家有用:
├─api
├─build
├─cmds
│├─am
││└─src
││└─com
││└─android
││└─commands
││└─am
│├─app_process
│├─backup
│├─bmgr
││└─src
││└─com
││└─android
││└─commands
││└─bmgr
│├─bootanimation
│├─bugreport
│├─dumpstate
│├─dumpsys
│├─ime
││└─src
││└─com
││└─android
││└─commands
││└─ime
│├─input
││└─src
││└─com
││└─android
││└─commands
││└─input
│├─installd
│├─keystore
│├─pm
││└─src
││└─com
││└─android
││└─commands
││└─pm
│├─rawbu
│├─runtime
│├─screencap
│├─service
│├─servicemanager
│├─stagefright
│├─surfaceflinger
│├─svc
││└─src
││└─com
││└─android
││└─commands
││└─svc
│└─system_server
│└─library
├─core
│├─config
││├─debug
│││└─android
│││└─util
││├─ndebug
│││└─android
│││└─util
││└─SDK
││└─android
││└─util
│├─java
││├─android
│││├─accessibilityservice
│││├─accounts
│││├─annotation
│││├─app
││││├─admin
││││└─backup
│││├─appwidget
│││├─bluetooth
│││├─content
││││├─pm
││││└─res
│││├─database
││││└─sqlite
│││├─ddm
│││├─debug
│││├─emoji
│││├─gesture
│││├─hardware
│││├─inputmethodservice
│││├─net
││││└─http
│││├─nfc
││││└─tech
│││├─os
││││└─storage
│││├─pim
││││└─vcard
││││└─exception
│││├─preference
│││├─provider
│││├─security
│││├─server
││││└─search
│││├─service
││││├─urlrenderer
││││└─wallpaper
│││├─speech
││││├─srec
││││└─tts
│││├─test
││││└─suitebuilder
││││└─annotation
│││├─text
││││├─format
││││├─method
││││├─style
││││└─util
│││├─util
│││├─view
││││├─accessibility
││││├─animation
││││└─inputmethod
│││├─webkit
│││└─widget
││└─com
││├─android
│││├─internal
││││├─app
││││├─appwidget
││││├─backup
││││├─content
││││├─database
││││├─http
│││││└─multipart
││││├─logging
││││├─net
││││├─nfc
││││├─os
│││││└─storage
││││├─policy
││││├─preference
││││├─service
│││││└─wallpaper
││││├─statusbar
││││├─util
││││├─view
│││││└─menu
││││└─widget
│││└─server
││└─google
││└─android
││├─collect
││├─mms
│││├─pdu
│││└─util
││└─util
│├─jni
││└─android
││├─graphics
││└─opengl
│├─res
││├─assets
│││├─images
│││├─sounds
│││└─webkit
││└─res
││├─anim
││├─color
││├─drawable
││├─drawable-en-hdpi
││├─drawable-en-ldpi
││├─drawable-en-mdpi
││├─drawable-hdpi
││├─drawable-land-hdpi
││├─drawable-land-ldpi
││├─drawable-land-mdpi
││├─drawable-ldpi
││├─drawable-mdpi
││├─drawable-nodpi
││├─layout
││├─layout-land
││├─layout-port
││├─raw
││├─raw-ar
││├─raw-cs
││├─raw-da
││├─raw-de
││├─raw-en-rGB
││├─raw-es
││├─raw-fi
││├─raw-fr
││├─raw-hu
││├─raw-it
││├─raw-iw
││├─raw-ja
││├─raw-ko
││├─raw-nl
││├─raw-pl
││├─raw-pt-rBR
││├─raw-ru
││├─raw-th
││├─raw-tr
││├─raw-zh-rCN
││├─raw-zh-rTW
││├─values
││├─values-ar
││├─values-ar-rEG
││├─values-ar-RIL
││├─values-bg
││├─values-bg-rBG
││├─values-ca
││├─values-ca-rES
││├─values-cs
││├─values-cs-rCZ
││├─values-da
││├─values-da-rDK
││├─values-de
││├─values-de-rAT
││├─values-de-rCH
││├─values-de-rDE
││├─values-de-rLI
││├─values-el
││├─values-el-rGR
││├─values-en-rAU
││├─values-en-rCA
││├─values-en-rGB
││├─values-en-rIE
││├─values-en-rIN
││├─values-en-rNZ
││├─values-en-rSG
││├─values-en-rUS
││├─values-en-rZA
││├─values-es
││├─values-es-rES
││├─values-es-rUS
││├─values-fa
││├─values-fi
││├─values-fi-rFI
││├─values-fr
││├─values-fr-rBE
││├─values-fr-rCA
││├─values-fr-rCH
││├─values-fr-rFR
││├─values-he-rIL
││├─values-hi-rIN
││├─values-hr
││├─values-hr-rHR
││├─values-hu
││├─values-hu-rHU
││├─values-id-rID
││├─values-in
││├─values-in-rID
││├─values-it
││├─values-it-rCH
││├─values-it-rIT
││├─values-iw
││├─values-iw-rIL
││├─values-ja
││├─values-ja-rJP
││├─values-ko
││├─values-ko-rKR
││├─values-land
││├─values-lt
││├─values-lt-rLT
││├─values-lv
││├─values-lv-rLV
││├─values-mcc204
││├─values-mcc204-cs
││├─values-mcc204-da
││├─values-mcc204-de
││├─values-mcc204-el
││├─values-mcc204-es
││├─values-mcc204-es-rUS
││├─values-mcc204-fr
││├─values-mcc204-it
││├─values-mcc204-ja
││├─values-mcc204-ko
││├─values-mcc204-nl
││├─values-mcc204-pl
││├─values-mcc204-pt
││├─values-mcc204-pt-rPT
││├─values-mcc204-ru
││├─values-mcc204-sv
││├─values-mcc204-tr
││├─values-mcc204-zh-rCN
││├─values-mcc204-zh-rTW
││├─values-mcc219
││├─values-mcc220
││├─values-mcc230
││├─values-mcc230-cs
││├─values-mcc230-da
││├─values-mcc230-de
││├─values-mcc230-el
││├─values-mcc230-es
││├─values-mcc230-es-rUS
││├─values-mcc230-fr
││├─values-mcc230-it
││├─values-mcc230-ja
││├─values-mcc230-ko
││├─values-mcc230-nl
││├─values-mcc230-pl
││├─values-mcc230-pt
││├─values-mcc230-pt-rPT
││├─values-mcc230-ru
││├─values-mcc230-sv
││├─values-mcc230-tr
││├─values-mcc230-zh-rCN
││├─values-mcc230-zh-rTW
││├─values-mcc232
││├─values-mcc232-cs
││├─values-mcc232-da
││├─values-mcc232-de
││├─values-mcc232-el
││├─values-mcc232-es
││├─values-mcc232-es-rUS
││├─values-mcc232-fr
││├─values-mcc232-it
││├─values-mcc232-ja
││├─values-mcc232-ko
││├─values-mcc232-nl
││├─values-mcc232-pl
││├─values-mcc232-pt
││├─values-mcc232-pt-rPT
││├─values-mcc232-ru
││├─values-mcc232-sv
││├─values-mcc232-tr
││├─values-mcc232-zh-rCN
││├─values-mcc232-zh-rTW
││├─values-mcc234
││├─values-mcc234-cs
││├─values-mcc234-da
││├─values-mcc234-de
││├─values-mcc234-el
││├─values-mcc234-es
││├─values-mcc234-es-rUS
││├─values-mcc234-fr
││├─values-mcc234-it
││├─values-mcc234-ja
││├─values-mcc234-ko
││├─values-mcc234-nl
││├─values-mcc234-pl
││├─values-mcc234-pt
││├─values-mcc234-pt-rPT
││├─values-mcc234-ru
││├─values-mcc234-sv
││├─values-mcc234-tr
││├─values-mcc234-zh-rCN
││├─values-mcc234-zh-rTW
││├─values-mcc260
││├─values-mcc260-cs
││├─values-mcc260-da
││├─values-mcc260-de
││├─values-mcc260-el
││├─values-mcc260-es
││├─values-mcc260-es-rUS
││├─values-mcc260-fr
││├─values-mcc260-it
││├─values-mcc260-ja
││├─values-mcc260-ko
││├─values-mcc260-nl
││├─values-mcc260-pl
││├─values-mcc260-pt
││├─values-mcc260-pt-rPT
││├─values-mcc260-ru
││├─values-mcc260-sv
││├─values-mcc260-tr
││├─values-mcc260-zh-rCN
││├─values-mcc260-zh-rTW
││├─values-mcc262
││├─values-mcc262-cs
││├─values-mcc262-da
││├─values-mcc262-de
││├─values-mcc262-el
││├─values-mcc262-es
││├─values-mcc262-es-rUS
││├─values-mcc262-fr
││├─values-mcc262-it
││├─values-mcc262-ja
││├─values-mcc262-ko
││├─values-mcc262-nl
││├─values-mcc262-pl
││├─values-mcc262-pt
││├─values-mcc262-pt-rPT
││├─values-mcc262-ru
││├─values-mcc262-sv
││├─values-mcc262-tr
││├─values-mcc262-zh-rCN
││├─values-mcc262-zh-rTW
││├─values-nb
││├─values-nb-rNO
││├─values-nl
││├─values-nl-rBE
││├─values-nl-rNL
││├─values-pl
││├─values-pl-rPL
││├─values-port-mdpi
││├─values-pt
││├─values-pt-rBR
││├─values-pt-rPT
││├─values-rm
││├─values-rm-rCH
││├─values-ro
││├─values-ro-rRO
││├─values-ru
││├─values-ru-rRU
││├─values-sk
││├─values-sk-rSK
││├─values-sl
││├─values-sl-rSI
││├─values-sr
││├─values-sr-rRS
││├─values-sv
││├─values-sv-rSE
││├─values-th
││├─values-th-rTH
││├─values-tl
││├─values-tl-rPH
││├─values-tr
││├─values-tr-rTR
││├─values-uk
││├─values-uk-rUA
││├─values-vi
││├─values-vi-rVN
││├─values-zh-rCN
││├─values-zh-rTW
││├─xml
││├─xml-en
││├─xml-land
││└─xml-mdpi
│└─tests
│├─ConnectivityManagerTest
││├─assets
││├─res
│││└─values
││└─src
││└─com
││└─android
││└─connectivitymanagertest
││├─functional
││├─stress
││└─unit
│├─coretests
││├─apks
│││├─install_decl_perm
││││└─res
││││└─values
│││├─install_loc_auto
││││└─res
││││└─values
│││├─install_loc_internal
││││└─res
││││└─values
│││├─install_loc_sdcard
││││└─res
││││└─values
│││├─install_loc_unspecified
││││└─res
││││└─values
│││├─install_uses_feature
││││└─res
││││└─values
│││└─install_use_perm_good
│││└─res
│││└─values
││├─assets
││├─DisabledTestApp
│││└─src
│││└─com
│││└─android
│││└─frameworks
│││└─coretests
│││└─disabled_app
││├─EnabledTestApp
│││└─src
│││└─com
│││└─android
│││└─frameworks
│││└─coretests
│││└─enabled_app
││├─res
│││├─drawable
│││├─drawable-hdpi
│││├─drawable-mdpi
│││├─layout
│││├─raw
│││├─values
││