由於跟android真的很不熟,
參數一堆又看不懂,
真的是怎麼接怎麼錯...So Sad...
不過也因此有了些小心得,
在此記錄一下,
希望可以使下次少走些冤枉路~
那麼,就先從AndroidManifest.xml開始記錄囉~!
--------
動機:
一開始很開心想說很多都有支援unity的plugin
但是當需要的plugin不只一個時(比如說接了google play games又要接facebook),
就得額外處理AndroidManifest.xml,
不然檔案蓋來蓋去時,
沒意外不是build不過就是功能伍法正確執行...悲劇啊...
回到主題:
如果沒意外,大家可以在專案中找到這個檔案,
主要記錄了該專案的依些資訊,
如使用了哪些activity、需要使用到哪些權限、版本號等等,
以下再慢慢介紹,
沒意外它應該長成這樣:
<?xmlversion="1.0"encoding="utf-8"?>
<manifest>
<application>
<activity>
<intent-filter>
<action/>
<category/>
</intent-filter>
</activity>
<activity-alias>
<intent-filter></intent-filter>
<meta-data/>
</activity-alias>
<service>
<intent-filter></intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter></intent-filter>
<meta-data/>
</receiver>
<provider>
<grant-uri-permission/>
<meta-data/>
</provider>
<uses-library/>
</application>
<uses-sdk/>
<uses-permission/>
<permission/>
<permission-tree/>
<permission-group/>
<instrumentation/>
<uses-configuration/>
<uses-feature/>
<supports-screens/>
</manifest>
<manifest>App的基本設定,如安裝App的位置、版本號、樣式等設定
範例:
<manifest xmlns:android= "http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" ...>
部份參數說明:
xmlns:android 定義android命名空間,一般為http://schemas.android.com/apk/res/android
android:installLocation 安裝的位置,分別為:
- internalOnly 只能安裝在手機上
- auto 自動
- preferExternal 希望裝在記憶卡中
android:theme App的樣式,如隱藏標題、背景色系、全螢幕等設定
package app包名
android:versionName 版本號,會於遊戲中顯示
android:versionCode 上架版號,須比上一個版本大
----------
<activity>
宣告使用到的activity與其相關參數,
如果沒有宣告,其他程式使用到該activity時可能會因找不到而發生錯誤
範例:
<activity android:name="com.exampleapp.AppActivity" android:launchMode="singleTask" android:label="@string/app_name" android:configChanges="fontScale|touchscreen"... >
</activity>
部份參數說明:
android:name activity名稱,由package + 子包名 + activity名稱組成
android:launchMode 加載的方式,分別為standard、singleTop、singleTask、singleInstance
android:label 於畫面上方的名稱
android:configChanges 用於捕獲手機狀態改變,當狀態改變時,呼叫onConfigurationChanged()
----------
<intent-filter>
Intent filter內會設定action、data與category
----------
<action />
常見到的用法為設定程式的進入口,
一份App只能有一個name的進入點
範例:
<action android:name="android.intent.action.MAIN" />
----------
<category/>
長見使用於該App是否顯示於列表中,
一個App基本上只會有一個android.intent.category.LAUNCHER
範例:
<category android:name="android.intent.category.LAUNCHER" />
----------
<meta-data/>
包含了name與value,
如果想在activity中使用到metadate的值,
則需要在AndroidManifest中先定義
範例:
<meta-data android:name="com.sample.Area" android:value="TW" />
----------
<uses-sdk />
版號需求設定
範例:
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="23" />
部份參數說明:
android:minSdkVersion 最低相容版號
android:targetSdkVersion 目標版號
----------
<uses-permission />
權限需求,跟使用者要權限,如開wifi、開網路、藍芽等等
範例:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
----------
<uses-feature/>
App限制,如螢幕可點擊、支援多點觸控、版本等等
範例:
<uses-feature android:name="限制" android:required="false" />
部份參數說明:
<uses-feature android:name="android.hardware.touchscreen" android:required="true" /> 需要觸控螢幕
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="true" /> 需要多點觸控
----------
其他部分沒寫到,
因為還沒弄到或是不熟...
就先不寫出來誤人子弟了~
沒有留言:
張貼留言