首頁 收藏 QQ群
 網(wǎng)站導航

ZNDS智能電視網(wǎng) 推薦當貝市場

TV應用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計算器

綜合交流 / 評測 / 活動區(qū)

交流區(qū) | 測硬件 | 網(wǎng)站活動 | Z幣中心

新手入門 / 進階 / 社區(qū)互助

新手 | 你問我答 | 免費刷機救磚 | ROM固件

查看: 11798|回復: 0
上一主題 下一主題
[教程]

【轉(zhuǎn)】Android應用及應用管理

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2013-8-28 16:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
9      AndroidManifest.xml是Android應用的描述文件,它描述了該應用的相關信息,主要包括以下各個元素。      指定本應用內(nèi)java主程序包的包名。當沒有指定apk的文件名時,編譯后產(chǎn)生程序包將以此命名。本包名應當在Android系統(tǒng)運行時唯一。      指定本應用程序所授予的信任級別,目前有的認證級別有platform(system)、shared、media以及應用自定義的認證。不同的認證可以享受不同的權限。      權限組的定義是為了描述一組具有共同特性的權限。Android系統(tǒng)中預訂了一些組,它們是:android.permission-group.COST_MONEYandroid.permission-group.MESSAGESandroid.permission-group.MESSAGESandroid.permission-group.PERSONAL_INFOandroid.permission-group.LOCATIONandroid.permission-group.NETWORKandroid.permission-group.ACCOUNTSandroid.permission-group.HARDWARE_CONTROLSandroid.permission-group.PHONE_CALLSandroid.permission-group.SYSTEM_TOOLSandroid.permission-group.DEVELOPMENT_TOOLS   
      從字面意思我們就可以理解每個組的特性。具體含義可以參考SDK文檔。      權限用來描述是否擁有做某件事的權力。Android系統(tǒng)中權限是分級的,前分為普通級別(Normal),危險級別(dangerous),簽名級別(signature)和系統(tǒng)/簽名級別(signature or system)。      系統(tǒng)中所有預定義的權限根據(jù)作用的不同,分別屬于不同的級別。      對于普通和危險級別的權限,我們稱之為低級權限,應用申請即授予。其他兩級權限,我們稱之為高級權限或系統(tǒng)權限,應用擁有platform級別的認證才能申請。      當應用試圖在沒有權限的情況下做受限操作,應用將被系統(tǒng)殺掉以警示。      系統(tǒng)應用可以使用任何權限。權限的聲明者可無條件使用該權限。      目前Android系統(tǒng)定義了許多權限,通過SDK文檔用戶可以查詢到哪些操作需要哪些權限,然后按需申請。      權限樹的設置是為了統(tǒng)一管理一組權限,聲明于該樹下的權限所有者歸屬該應用。系統(tǒng)提供了API,應用可以在運行時動態(tài)添加。   
    ? PackageManager.addPermission()      Android系統(tǒng)中,安裝應用時不能指定安裝目錄,所有的應用都只能裝在預置文件夾下。      Android系統(tǒng)支持數(shù)種安裝方式,而播思通訊的Ophone平臺在此基礎上支持更多方式。      Android系統(tǒng)中,應用安裝包.apk文件屬于默認支持的文件類型,它的的mime type被定義為"application/vnd.android.package-archive"。      系統(tǒng)內(nèi)置了安裝工具來解析并安裝.apk文件。你可以從OPhone平臺的文件管理器中找到對應安裝包,點擊即可啟動安裝步驟。這里給出了相應的代碼,有興趣的開發(fā)者可以嘗試使用。Intent apkintent =  Intent(Intent.ACTION_VIEW);  Uri puri = Uri.fromFile( File(path)); //path is the path of source apk apkintent.setDataAndType(puri, "application/vnd.android.package-archive"); startActivity(apkintent);  
   
      Android系統(tǒng)提供了安裝應用的API:PackageManager.installPackage(final Uri packageURI,   
     final IPackageInstallObserver observer, final int flags); uri給出了原文件的地址observer實現(xiàn)了回調(diào)函數(shù)packageInstalled(final String packageArchiveName, final int returnCode) 以檢查安裝是否成功flags提供安裝標識。Android平臺提供的標識有:   
1.PackageManager.FORWARD_LOCK_PACKAGE = 0x00000001   
標識本應用屬于受限應用,應用將會被安裝到保護目錄,只有該應用可以訪問代碼段和不屬于resource的asset資源。   
2.PackageManager.REPLACE_EXISTING_PACKAGE = 0x00000002;   
應用如已存在,則先刪除再安裝。   
3.PackageManager.SDCARD_PACKAGE = 0x00000004; 由OPhone平臺擴展,標識該應用安裝目錄為存儲卡,默認為data分區(qū)。 因為手機中data分區(qū)大小有限,因此OPhone平臺默認將應用裝到存儲卡上。 本API需要"android.permission.INSTALL_PACKAGES"權限,該權限屬于簽名級別,因此只有系統(tǒng)級別的應用程序才能使用。      Android支持拷貝即安裝的方式,即將安裝包拷貝到預置安裝目錄即可自動安裝,但所有的預置目錄對于用戶不可見。      OPhone平臺擴展后,用戶可將安裝包拷入存儲卡的app目錄下,系統(tǒng)將監(jiān)控該文件夾,檢測到新的安裝文件后自動安裝。      這種方式適合一次安裝大量應用,但是也有壞處。一是無法知道哪些應用安裝成功,哪些安裝失敗, 二是安裝失敗的應用將會作為垃圾存放在預置目錄中,在系統(tǒng)啟動時延長啟動時間,三是過多的應用可能將data分區(qū)的空間占用過多,影響系統(tǒng)的正常使用。解析安裝包是否合法,如果合法即加載應用,如果非法即放棄安裝取出代碼段,放入/data/dalvik-cache目錄建立/data/data/包名的文件夾,以存放用戶數(shù)據(jù)將安裝包攜帶的lib放入/data/data/包名/lib中以上步驟完成后將安裝包拷到安裝目錄加載該應用信息   
      Android系統(tǒng)同樣支持多種卸載方式。      使用預置卸載工具      系統(tǒng)內(nèi)置了卸載工具。這里給出了啟動代碼,執(zhí)行后即可看到卸載步驟:Uri packageURI = Uri.parse("package:"+packageName); Intent uninstallIntent =  Intent(Intent.ACTION_DELETE, packageURI); startActivity(uninstallIntent);         Android提供了卸載應用的標準API:PackageManager().deletePackage(String packageName, IPackageDeleteObserver observer, int flags);1.     observer實現(xiàn)了回調(diào)函數(shù)packageDeleted(boolean succeeded)以檢查卸載是否成功2.     flags提供卸載標識。Android平臺提供的標識有      PackageManager.DONT_DELETE_DATA = 0x00000001;   
      標識卸載時是否同時刪除用戶數(shù)據(jù)。       本API需要"android.permission.DELETE_PACKAGES"權限,該權限屬于簽名級別,因此只有系統(tǒng)級別的應用程序才能使用。      對應于拷貝即安裝,系統(tǒng)同樣支持刪除即卸載功能。當用戶刪除/sdcard/app目錄下安裝包時,系統(tǒng)將自動檢測到刪除事件并卸載對應應用。   
      本方法適合一次刪除大量應用。刪除代碼段如果需要刪除用戶數(shù)據(jù),則刪除建立/data/data/包名的文件夾,以存放用戶數(shù)據(jù)刪除應用信息刪除安裝包   
      應用安裝后即處于可用狀態(tài)。對于系統(tǒng)中所有應用,從管理層面分為信息管理和應用調(diào)度兩部分;從應用自身角度分為去激活與激活兩種狀態(tài)。   

上一篇:android系統(tǒng)組件介紹
下一篇:android layout_weight講解
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

Archiver|新帖|標簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號 )

網(wǎng)絡信息服務信用承諾書 | 增值電信業(yè)務經(jīng)營許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號

GMT+8, 2024-10-23 06:23 , Processed in 0.075265 second(s), 15 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報:report#znds.com (請將#替換為@)

© 2007-2024 ZNDS.Com

快速回復 返回頂部 返回列表