<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 241,  comments - 116,  trackbacks - 0

      自從Android 2.2版本開始,Android系統(tǒng)引入了一個(gè)全新的功能——APP2SD,這個(gè)功能讓Android系統(tǒng)允許將應(yīng)用程序安裝到SD卡上面,一方面節(jié)約出更多的RAM空間,另一方面也允許應(yīng)用程序擴(kuò)大自身的體積。

      但是僅僅Android系統(tǒng)支持APP2SD,這樣還是不夠的,應(yīng)用程序如果不經(jīng)過處理,仍然會(huì)一如既往的轉(zhuǎn)進(jìn)RAM里。這是因?yàn)锳ndroid系統(tǒng)保持向后兼容的特性。那么,如果讓應(yīng)用程序不裝入RAM,而是裝入SD卡呢?這需要在應(yīng)用程序的Android清單文件manifest.xml的manifest元素里加入android:installLocation屬性。其值為:perferExtenal或auto。

        perferExtental——意味著此應(yīng)用程序安裝到擴(kuò)展存儲(chǔ)(通常就是SD卡),但是系統(tǒng)不能保證應(yīng)用肯定會(huì)安裝到擴(kuò)展存儲(chǔ)。如果擴(kuò)展存儲(chǔ)沒有空間或者不可用,那么系統(tǒng)仍然會(huì)將應(yīng)用程序安裝到RAM里。www.nvzhuangpaihangbang.com

     

        auto——意味著此應(yīng)用程序可能安裝到擴(kuò)展存儲(chǔ),但是對安裝位置沒有特別偏好,將有系統(tǒng)根據(jù)自身算法,參考很多因素之后決定將此應(yīng)用程序安裝到哪里。

        internalOnly——意味著此應(yīng)用程序只能被安裝到RAM。

     

      一旦加入android:installLocation,不論其值為什么,用戶都可以將應(yīng)用程序在RAM和SD卡之間自由移動(dòng)。當(dāng)應(yīng)用程序安裝到SD卡后,需要注意以下幾點(diǎn):

        1. 僅apk文件保存在SD卡上,其他所有用戶的私有數(shù)據(jù)、數(shù)據(jù)庫、經(jīng)過優(yōu)化的dex文件和釋放的原生代碼仍然保存在RAM上。

        2. SD卡里的應(yīng)用程序在進(jìn)行安裝時(shí)會(huì)被加密,因此安裝在SD卡上的應(yīng)用程序僅對安裝這個(gè)應(yīng)用程序的設(shè)備起效,在其他設(shè)備上將不能運(yùn)行。

        3. 當(dāng)用戶啟用USB大容量存儲(chǔ)以共享文件給計(jì)算機(jī)、或者卸載SD卡,那么所有安裝在SD卡上的應(yīng)用都會(huì)被立即結(jié)束。

     

      由于安裝在SD卡上的應(yīng)用程序會(huì)受到SD卡狀態(tài)的影響,所以為了確保應(yīng)用程序的健壯性,在決定應(yīng)用程序是否可以安裝在SD卡上時(shí),應(yīng)該做到以下原則:

        1. 有后臺(tái)服務(wù)(Service)的應(yīng)用程序,不應(yīng)該支持APP2SD上。因?yàn)镾ervice是前臺(tái)界面不可見的,在卸載SD卡或者啟用USB時(shí),用戶并無法知道該應(yīng)用程序的Service是否處于活動(dòng)狀態(tài)。所以可能造成Service的意外終止。

        2. 輸入法程序不應(yīng)該支持APP2SD。如果卸載SD或者啟用USB,那么該輸入法將被終止,并由系統(tǒng)默認(rèn)輸入法所替代。

        3. 壁紙和包含桌面小工具(Widget)等常顯于界面的應(yīng)用程序不應(yīng)該支持APP2SD。

        4. AccountManager等與用戶數(shù)據(jù)有關(guān)的應(yīng)用程序不應(yīng)該支持APP2SD,因?yàn)樵赟D卡正常掛載之前,程序都無法看到通過AccountManager創(chuàng)建的用戶。

    waiyuwu.blogcn.com

     

      如果應(yīng)用程序有Service、或支持桌面小工具等以上提到的功能時(shí),應(yīng)該盡可能避免被安裝到SD卡上。一種保險(xiǎn)的做法是指定android:installLocation的值為internalOnly。

      由于APP2SD是Android 2.2版本的新特性,如果該應(yīng)用程序被計(jì)劃支持2.2之前的版本,做到向后兼容的話,那么需要進(jìn)行以下步驟:

        1. 在manifest元素里加入android:installLocation屬性,并指定其值為perferExternal或者auto。

        2. 指定andorid:minSdkVersion值,其值可以小于8(2.2版本之前)。

        3. 更改該應(yīng)用程序的build target為API Level 8,以使編譯器能編譯此應(yīng)用程序。(必須)如果不指定build target,那么舊的Android庫將無法理解android:installLocation屬性,也就無法編譯此應(yīng)用。

     

      實(shí)現(xiàn)以上三個(gè)步驟之后,那么如果此應(yīng)用被安裝到API Level低于8的設(shè)備上時(shí),android:installLocation屬性將被忽略。并且該應(yīng)用會(huì)被安裝于RAM上。

    posted on 2011-08-30 10:14 墻頭草 閱讀(4750) 評論(1)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    人人游戲網(wǎng) 軟件開發(fā)網(wǎng) 貨運(yùn)專家
    主站蜘蛛池模板: 国产亚洲成AV人片在线观黄桃| 亚洲乱码中文字幕小综合| 国产亚洲情侣一区二区无| 久久亚洲AV午夜福利精品一区 | 久久精品视频免费| 最近最新中文字幕完整版免费高清| 亚洲精品网站在线观看不卡无广告| 噜噜噜亚洲色成人网站∨| 国产av无码专区亚洲av毛片搜 | 中文字幕一区二区三区免费视频 | 今天免费中文字幕视频| 亚洲线精品一区二区三区影音先锋| 亚洲一区欧洲一区| 色欲色香天天天综合网站免费| 国产做床爱无遮挡免费视频| 亚洲第一页在线视频| 中文字幕免费在线看电影大全| 国产亚洲AV手机在线观看| 成人婷婷网色偷偷亚洲男人的天堂| 四虎最新永久免费视频| 亚洲AV无码久久寂寞少妇| 免费无码专区毛片高潮喷水| 女人张腿给男人桶视频免费版| 亚洲午夜精品一区二区| 爽爽爽爽爽爽爽成人免费观看| 亚洲高清免费视频| 国产成人va亚洲电影| 亚洲男人第一无码aⅴ网站| 九九热久久免费视频| 亚洲国产成人爱av在线播放| 成人免费无码H在线观看不卡| 亚洲国产人成在线观看69网站 | 四虎永久在线精品视频免费观看| 国产精品99爱免费视频| 亚洲AV无码一区二三区 | 成全视成人免费观看在线看| 亚洲精品成人av在线| 日韩在线看片免费人成视频播放| 国产AV旡码专区亚洲AV苍井空 | 免费无码又爽又刺激高潮的视频| 亚洲国产成人va在线观看网址|