android已安裝程式的存在形態和位置

來源:互聯網
上載者:User

      android系統上,應用程式安裝在什麼位置呢?   

根據經驗,大家都會這麼說,系統的應用安裝在/system/app/ 目錄下 以apk和odex兩個檔案共同表達一個應用程式;

自己安裝的軟體自然是安裝在/data/app目錄下,也是以apk形式存在。

好像沒有什麼問題,但是為什麼我安裝的好多程式在這兩個目錄下找不到呢?

因為除了這兩個目錄 它還可以存在於其他目錄,一邊理解,一邊尋找吧。

1.已經安裝到android上的應用程式的存在形式:

首先必須要有apk存在,否則這個程式就等於沒有安裝,你可以試著把上面提到的system/app下

的檔案刪除試試,那個程式馬上就會從系統中消失; 

其次運行過程中,肯定不是apk格式,沒錯,apk程式是在dalvik虛擬機器上啟動並執行(就是一個java虛擬機器),很容易想到apk要解包了,

看看/data/dalvik-cache目錄,下面就是解壓出來的dex檔案。

最後 還有一些檔案,是存在/data/data目錄下的 這裡面主要是資料庫,lib庫等。

2.如何準確找到apk的位置

開發人員一般都想找到apk檔案,以為可以反編譯,可以獲得自己想要的技術點。

1) 開啟usb偵錯模式,把/data/system/packages.xml檔案取下來

2)搜尋找到你要找的軟體,例如,下面這段,直接就看到codePath了

<package name="com.zplus" codePath="/mnt/asec/com.zplus-2/pkg.apk" nativeLibraryPath="/mnt/asec/com.zplus-2/lib" flags="262144" ft="13325271c40" it="133244107eb" ut="1332527411a" version="5" userId="10161"><sigs count="1"><cert index="4" key="3082022730820190a00302010202044d74986c300d06092a864886f70d01010505003057310b3009060355040613023836310e300c060355040813056368696e613110300e060355040713076e616e6a696e67310b3009060355040a13026877310b3009060355040b13026e62310c300a060355040313037a68753020170d3131303330373038333334385a180f32303631303232323038333334385a3057310b3009060355040613023836310e300c060355040813056368696e613110300e060355040713076e616e6a696e67310b3009060355040a13026877310b3009060355040b13026e62310c300a060355040313037a687530819f300d06092a864886f70d010101050003818d0030818902818100b816326c12b8a2f06b08d758bbb6b804e4aedeed7411b09f90fb93b664aea406988f14f5b142b3de7da44cb6de775ce7908397d147037baf7a30310c81e89687f27d1f889bf81f049af9f2857f695b10ee747789891b27f9f27594b085eba63c8885d70995c10f9a7319bad9047ab44ad214de4c96fb3d54a162c505e40316070203010001300d06092a864886f70d0101050500038181001eb2acb12420c10ba15391761ac82b02fe18450744a18f0e38c5e22397e1938f6beca53b3b78a684a90679e96fb0c9c80d0aff176fc1581a0f14012fe90f6a44ed5e0aa33af6436cab151f704b3297bbfbe6a913077153eee45f7bcc644c3e95f070e7f4e6fc48b910a5bcf4f1da98f582196b31101b34b790835c020b2ef0e3" /></sigs><perms><item name="com.android.launcher.permission.INSTALL_SHORTCUT" /><item name="android.permission.READ_PHONE_STATE" /><item name="android.permission.CAMERA" /><item name="android.permission.SEND_SMS" /><item name="android.permission.WRITE_EXTERNAL_STORAGE" /><item name="android.permission.INTERNET" /><item name="android.permission.ACCESS_FINE_LOCATION" /><item name="android.permission.ACCESS_COARSE_LOCATION" /><item name="android.permission.READ_CONTACTS" /><item name="android.permission.CALL_PHONE" /><item name="android.permission.ACCESS_MOCK_LOCATION" /><item name="android.permission.ACCESS_NETWORK_STATE" /></perms>

</package> 

最後說明一點 用adb擷取這個檔案不需要root許可權,(我測試了一款2.2沒有root和2.3已經root的 都是ok) 

如果大家覺得上面的擷取apk方法比較麻煩的話,大家可以使用91助手,裡面有個備份已安裝軟體的功能可以直接把apk匯出。

 

( 剛開始用零散的時間學習android,如有錯誤還請留言指正 )

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.