面对面快传文件服务器恢复,QQ 面对面快传的传应用功能,如何找到已安装应用的安装包?...
在手機里我們通常看不到已安裝應用的安裝包,但是有時我們又會有些好玩的應用或游戲給好友分享。沒有網絡的情況下怎么辦呢?
有朋友發現了QQ的面對面快傳能直接發送已安裝應用的apk。驚了(驚恐臉)。因為在我印象里,安卓應用和windows軟件的安裝包一樣,都是一系列文件打包壓縮集合。實際在安裝時會解壓出各個文件安裝到不同的目錄里。難不成QQ在手機上又把各個部分收集起來重新打包了?
于是我去了解了安卓應用的安裝過程,發現問題并沒有想象的那么復雜。
關于apk的安裝過程,我寫了一篇文章以備忘。若你也感到好奇,可以簡單看下。Apk 安裝過程
簡單說,雖然確實解壓了很多內容出去,但仍在/data/app/ 相應的目錄下留有一份完整的apk。QQ 做的就是找到這個文件,然后作為普通的文件分享出去。
那么,
如何找到對應的apk呢?
PackageManager 提供了一份系統安裝應用的清單,這個清單提供了很多有價值的信息 ApplicationInfo。
可以發現其中的 sourceDir 字段,就是我們的目標。
OK,通過這兩行代碼,就可以獲取到apk文件的路徑了。有沒有很興奮呢?
// 獲取已安裝應用列表
List apps = {Activity}.getPackageManager().getInstalledApplications(0);
// 獲取apk地址
appInfo.sourceDir
復制代碼
權限問題
看到前面說apk保存在 /data/app/ 目錄下,其實很擔心權限問題。我們都知道 /data/ 目錄權限是很嚴格的,需要system用戶或同組用戶才擁有讀權限。
drwxrwx--x 44 system system 4096 2018-10-08 16:17 data/
復制代碼
不過不用擔心,經過驗證,雖然 /data/ 和 /data/app/ 的other用戶沒有讀權限,可是其下的文件卻是other可讀的:
ocean:/ $ ls -ld data/app/com.qiyi.video
drwxr-xr-x 4 system system 4096 1970-01-01 08:03 data/app/com.qiyi.video
ocean:/ $ ls -l data/app/com.qiyi.video
-rw-r--r-- 1 system system 31639584 1970-01-01 08:03 com.qiyi.video.apk
drwxr-xr-x 3 system system 4096 1970-01-01 08:03 lib
drwxrwx--x 3 system install 4096 1970-01-01 08:03 oat
復制代碼
是不是感覺很神奇?
現在這個世界的大門也為你打開了,快去探索吧。
總結
以上是生活随笔為你收集整理的面对面快传文件服务器恢复,QQ 面对面快传的传应用功能,如何找到已安装应用的安装包?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全明星街球派对怎么单挑
- 下一篇: 像素生存者2任务大全奖励详解