亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1634 | 回復(fù): 0
打印 上一主題 下一主題

Android110418: PackageParser和AndroidManifest注記 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-12-20 09:44 |只看該作者 |倒序?yàn)g覽
Android110418: PackageParser和AndroidManifest.xml注記


Email:    zcatt@163.com
Blog    http://zcatt.blog.chinaunix.net
 
內(nèi)容提要
PackageParser和AndroidManifest.xml.以供備忘和參考。

聲明
僅限學(xué)習(xí)交流,禁止商業(yè)用途。轉(zhuǎn)載需注明出處。

版本記錄
Date        Ver        Note
2011-04-18    0.1        Draft.  zcatt, Beijing
 
apk包中的AndroidManifest.xml文件包含了package的各種描述信息. 分析和獲取這些信息的工作是由PackageParser完成的. 這里簡述之. 首先我們先羅列AndroidManifest.xml文件的簡要結(jié)構(gòu), 其次在大致整理PackageParser的邏輯.

AndroidManifest.xml的簡要結(jié)構(gòu)
====================================
AndroidManifest.xml的內(nèi)容在frameworks/base/core/res/res/values/attrs_manifest.xml中定義. 這里簡要羅列, 按照層進(jìn)關(guān)系, xml element用 "tagName, Name"的形式標(biāo)記, 對于某些xml element的重要屬性(attribute), 用"attr NAME"標(biāo)記.

AndridManifest.xml
    manifest, AndroidManifest
            attr versionCode
            attr versionName
            attr sharedUserId
            attr sharedUserLabel
            attr installLocation

        permission, AndroidManifestPermission
                attr name, label, icon
                attr permissionGroup
                attr protectionLevel

        permission-group, AndroidManifestPermissionGroup
                attr name, label, icon

        permission-tree, AndroidManifestPermissionTree
                attr name, label, icon

        uses-sdk, AndroidManifestUsesSdk

        uses-permission, AndroidManifestUsesPermission
                attr name

        uses-configuration, AndroidManifestUsesConfiguration
                attr reqTouchScreen
                attr requKeyboardType
                attr reqHardKeyboard
                attr reqNavigation
                attr reqFiveWayNav

        application, AndroidManifestApplication
                attr name, label, icon
                attr permission
                attr process
                attr taskAffinity
                attr persistent

            service, AndroidManifestService
                    attr name, label, icon
                    attr permission
                    attr process
                    attr enabled
                    attr exported

            receiver, AndroidManifestReceiver
                    attr name, label, icon
                    attr permission
                    attr process
                    attr enabled
                    attr exported

            provider, AndroidManifestProvider
                    attr name, label, icon
                    attr process, authorities, syncable
                    attr readPermission, writePermission, grantUriPermissions
                    attr permission
                    attr mulitprocess
                    attr enabled
                    attr exported
                grant-uri-permission, AndroidManifestGrantUriPermission
                        attr path, pathPrefix, pathPattern

                    path-permission, AndroidManifestPathPermission
                        attr path, pathPrefix, pathPattern
                        attr permission, readPermission, writePermission

            activity, AndroidManifestActivity
                    attr name, label, icon
                    attr theme, launchMode, screenOrientation
                    attr configChanges, permission, multiprocess
                    attr process, taskAffinity, allowTaskReparenting
                    attr finishOnTaskLaunch, finishOnCloseSystemDialogs
                    attr clearTaskOnLauch, noHistory
                    attr alwaysRetainTaskState, stateNotNeeded
                    attr excludeFromRecents
                    attr enabled, exported
                    attr windowSoftInputMode

            activity-alias, AndroidManifestActivityAlias
                    attr name, label, icon
                    attr targetActivity
                    attr permission
                    attr enabled, exported
                
            uses-library, AndroidManifestUsesLibrary
                    attr name
                    attr required

        instrumentation, AnroidManifestInstrumentation
                attr name, label, icon
                attr targetPackage, handleProfiling
                attr functionalTest

        uses-feature, AndroidManifestUsesFeature
                attr glEsVersion
                attr name
                attr required

        supports-screens, AndroidManifestSupportsScreens
                attr smallScreens, normalScreens, largeScreens
                attr resizeable, anyDensity

        protected-broadcast, AndroidManifestProtectedBroadcast
                attr name
        
        adopt-permissions, AndroidManifestOriginalPackage
                attr name

還有幾個特別的xml element, 可以有多個parent element.
    application
    activity, receiver, provider, service
    permission, permissionGroup
    instrumentation
        meta-data, AndroidManifestMetaData
                attr name, value, resource

    activity, receiver, service
        intent-filter, AndroidManifestIntentFilter
                attr label, icon, priority
            
            action, AndroidManifestAction
                    attr name

            data, AndroidManifestData
                    attr mimeType, scheme, host
                    attr port, path, pathPrefix
                    attr pathPattern

            category, AndroidManifestCategory
                    attr name

    intent, Intent
            attr action, data, mimeType
            attr targetPackage, targetClass

        category, IntentCategory
                attr name
        
        extra, Extra
                attr name, value


PackageParser的邏輯
====================================
PackageParser的parsePackage()方法會讀取apk包中的AndroidManifest.xml文件, 調(diào)用各子par***XX()方法, 解析出包信息. 同時, PackageParser定義了一些class, 容納這些解析得到的信息. 下面是對應(yīng)的關(guān)系.

class                   xml elements
-------------           --------------------------------------
Package                 package
Permission              permission, permission-tree
PermissionGroup         permission-group
Activity                activity, activity-alias, receiver
Service                    service
Provider                provider
Instrumentation         instrumentation
ActivityIntentInfo        intent-filter @ activity or receiver
ServiceIntentInfo       intent-filter @ service

PacakgeParser的結(jié)果主要被PackageManagerService使用.

Locations of visitors to this page
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP
  
<u id="lz99r"><strong id="lz99r"><progress id="lz99r"></progress></strong></u>

  • <cite id="lz99r"><track id="lz99r"></track></cite>
      <sub id="lz99r"></sub>

      1. <blockquote id="lz99r"><mark id="lz99r"></mark></blockquote>
        <nobr id="lz99r"></nobr>