android-需求(三):哪些應用會被編譯進系統

    Andriod默認情況下apk,都會安裝到/system/app目錄下在編譯系統時,Androd會根據每個應用的Android.mk文件裏的LOCAL_MODULE_TAGS這個變量的值,來決定這個應用是否會編譯到系統裏

       通常情況下LOCAL_MODULE_TAGS變量的值有user、optional、debug、eng、tests、samples這幾個值。

       在2.2裏如果LOCAL_MODULE_TAGS變量的值爲user那麼系統直接就會將這個應用的apk安裝到systm/app目錄下,

       在2.3裏將這個變量的值賦值爲user系統會做一個處理,會根據LOCAL_MODULE的值GRANDFATHERED_USER_MODULES變量的值進行比較,如果LOCAL_MODULE變量的值在GRANDFATHERED_USER_MODULES變量裏沒有,那麼系統就會報錯;默認情況下user debug eng 都會被編譯到系統裏。

        如果是optional,那麼會根據要編譯的LOCAL_MODULE 是否在PRODUCT_PACKAGES這個變量中,如果在,就會編譯到系統裏;如果沒有,那麼就不會被編譯到系統裏。tests會根據編譯的版本的vatiant來決定是否編譯到系統裏,而samples只是一個例子一般都不會被編譯到系統裏的。在Android裏只有幾個samples是可以被編譯到系統裏的,但是默認情況是沒有被編譯的。

       但是在android系統裏java應用如果生成了apk包就會被安裝到system/app目錄下,想將java應用編譯生成apk包而且不被編譯到系統裏那麼我們就等修改該Android系統的Makefile文件系統

========================================================================================================

以Calculator爲例:trunk\packages\apps\Calculator\Android.mk



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章