?

免費教程_免費網賺教程_破解版軟件-寂涯網絡學習基地

當前位置: 主頁 > 系統綜合 > 各類編程 > 詳解如何制作APK安裝器

詳解如何制作APK安裝器

時間:2012-04-14 19:31來源:未知 整理:寂涯網絡 點擊:

為了方便安裝Android軟件,APK安裝器這類軟件在網上出現了,大家用的最多的可能
就屬 91 手機助手自帶的安裝器了。今天我們使用 C++動手來編寫一個這樣的工具,在開始
之前,我們有必要了解一下APK文件是怎樣的方式安裝到用戶手機中的。細分起來, Android
程序的安裝有下面四種方式:
1.系統程序安裝:開機時安裝,這類安裝沒有安裝界面
2.通過 Market安裝:直接通過Market進行網絡安裝,這類安裝沒有安裝界面
3.ADB 工具安裝:使用ADB工具進行安裝,這類安裝沒有安裝界面
4.手機自帶安裝:通過SD卡里的 APK 文件安裝,這類安裝有安裝界面
這四種方法,仔細想想,我們能下手的就是通過 ADB 工具來安裝了,ADB(Android 調
試橋)是 Android SDK中為開發人員提供的一款強大的程序調試測試工具,集成了安裝,卸
載,調試,設備管理等多個功能,詳細的adb命令參數自己可以運行adb 得到。現在我們只
關心需要用到的功能。當 Android 手機設備使用 USB 調試模式連上計算機后,可以運行
adb.exe devices來列出連接上的設備,如圖1 所示為開啟一個Android模擬器后的截圖:
圖1
在設備已連接的情況下,可以直接運行 adb install <APK file>安裝一個 APK 程序或
運行 adb -s <serial number> install <APK file>來對指定的設備進行軟件安裝,后者是
在連接多個設備的情況下才用的,我們這里為了簡單就不考慮了,安裝效果如圖2所示
圖2
在經過一小段時間的等待后,提示Success說明安裝成功,不過在實際安裝的過程中,
有時候 adb返回后沒有Success提示但程序也安裝成功了,這讓人很郁悶,因為這樣就無法
捕獲 APK 是否已經正確安裝了,為了簡化,我直接返回成功了。
APK 程序的卸載也很簡單,輸入adb uninstall <package>就可以了,這里的package
是軟件的包名,每個APK程序安裝后有個APK程序名,也有個包名,我們可以通過獲取APK
文件里面的信息來獲取這個包名。卸載效果如圖3所示:
圖3
如果輸入的package在手機中不存在的話,會返回如圖4所示的結果
圖4
這樣就可以通過查看返回的數據里面有無Failure來判斷APK是否成功卸載。到這里,
我們可以完成手機是否已經正常連接、安裝、卸載等功能了,我們繼續看看如何獲取 APK
文件本身的信息,我們通常見到的APK 安裝器都可以顯示APK文件的軟件名、包名、文件大
小、最低系統版本、權限等數據。這些數據的獲取可以通過運行AAPT.exe來獲取,AAPT 是
Android SDK中提供的另外一個工具,它提供了對APK進行信息列舉、文件添加、文件刪除
及資源打包到APK 等功能。我們要用到的是它的 dump 命令,如圖5 所示:
圖5
我們只需運行aapt d badging <APK file>就可以獲取一個APK的詳細信息,如圖6所示:
圖6
這里的“package:name=”就是軟件的包名,“versionName”就是軟件的版本,
“application: label”就是軟件對外顯示的名稱,“icon=”就是軟件顯示的圖標,
“uses-permission:”就是軟件用到的權限,這些權限有一部分是流氓及病毒軟件需要用到
的,在安裝 APK 之前,我們有必要查看它所需的權限來對它的危險度進行粗略的判斷,
“sdkVersion:”就是軟件運行允許的Android最低版本,這里的數字7表示是 Android2.1
系統,不同版本的 Android 都有相應數字版本號,截止到最新的 Android4.0版本它們的對
應關系如表1 所示:
表1
還有一種情況,當APK文件名無效或非法的APK文件的時候, aapt d badging <APK file>
會返回錯誤信息,如圖7所示:
圖9
這可能是 AAPT 處理上的一個 BUG, 我們將文件名改成普通英文名后即可正常返回 APK

本頁地址 http://www.ionrce.tw/biancheng/20120414825.html

百度搜索更多

谷歌搜索更多

頂一下
(3)
100%
踩一下
(0)
0%
------分隔線----------------------------
?
評價:
昵稱: 驗證碼:點擊我更換圖片
推薦內容
贊助商
贊助商
?

關于本站免責聲明視頻更新google百度地圖視頻地圖RRS訂閱

如有什么問題請在本站留言,或發郵件到 hxt167#foxmail.com

内蒙古十一选五基本走势图手机版