apk調用so庫的問題

來源:互聯網
上載者:User

為了方便說話,先來幾個定義。
使用者自己手動安裝的程式,稱為第三方程式。
編譯系統時,源碼放在packages下面產生的程式,稱為系統程式。
/system/lib/下的so庫稱為系統庫
/data/data/包名/lib/下的so庫稱為第三方庫

系統程式只能調用系統庫,即使在編譯時間packages下面的源碼中放入jni代碼,也不會編譯產生so庫。觀察了一下packages/apps/下面內建程式,發現只有res/,src/,Android.mk,AndroidManifest.xml這幾個東西是有用的。
第三方程式可以調用第三方庫,也可以調用系統庫。

總結1:如果系統庫目錄和第三方庫目錄下面有相同名稱的so庫,第三方程式會首先調用系統庫。

總結2:發現一個現象,大部分程式在使用者退出後仍然佔用記憶體,只有UC和QQ瀏覽器除外,這是因為系統預設在程式退出時原有的記憶體不會釋放,方便再次載入時提高速度,但有個副作用就是這種情況下,即使替換掉程式調用的so庫,也不會立即生效,必須等到程式完全退出並重新載入時,才會生效。當然,這種情況在使用者的機器上是不會發生的。
總結3:系統內建的程式升級時,如果要升級so庫,怎麼辦???在新版本的APK中不要使用和原來相同的so庫了,換新的吧。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.