最近導入網上的源碼工程,發現在manifest上有一些錯誤,這裡也順便和大家分享下:
一、android:installLocation

這個參數,其實我們一般用不到的,這裡解釋下:
它是android2.2引入的,注意你的版本android:targetSdkVersion,這個要大於等於8才可以。
關於這個參數的作用:
從android的開發文檔來看:
<span style="font-size:12px;"><manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="string"
android:sharedUserId="string"
android:sharedUserLabel="string resource"
android:versionCode="integer"
android:versionName="string"
android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
. . .
</manifest></span>

internalOnly:表示只把當前應用程序安裝在內存中,不能安裝在SD卡上。如果內存滿了,它就不能正常安裝了。而且它就是默認值。
auto:表示可以安裝在SD卡,默認會安裝在手機內存中。如果內存滿了,它會選擇安裝在SD上。
preferExternal:表示程序會安裝在SD卡上,如果SD卡不能用,或者滿了的話,它也可能會安裝在內存中。此外,用戶也可以自由切換安裝的位置。

這段簡單說來就是,默認情況下,程序會安裝在內存中,除非你只記得定義了。
還有就是,即使你安裝程序在SD卡上,但應用保存的數據還是會保存在手機內存上。
對於apk程序而言,都有一個隨機密鑰,它可以確保程序只能由安裝它的程序來操作。如果SD卡被卸載了,那麼應用程序也就沒有了。我們會發現在拿掉SD卡時,手機上的程序少了很多,就是這個原因造成的。
二、android:xlargeScreens
這個就簡單了,這個是android2.3引入的,注意你的版本android:targetSdkVersion,這個要大於等於10才可以。
