標籤:android ar 使用 sp 檔案 on art cti bs
1.反編譯settings.apk
2.在values/strings.xml裡添加代碼:
<string name="ad_settings">Advanced Settings</string>
<string name="la_settings">Launcher</string>
3.在values-zh-rcn/strings.xml裡添加代碼:
<string name="ad_settings">進階設定</string>
<string name="la_settings">啟動器</string>
4.然後在drawable-hdpi裡放2張圖片:ic_launcher.png和ic_ad_settings.png
5.第一次回編譯apk,(為了自動產生相應的public數值)檔案名稱為1.apk,接著再反編譯1.apk
6.然後找到res/xml/settings_headers.xml使用Notepad++開啟該檔案
在任意想添加的位置添加如下代碼:
<header android:icon="@drawable/ic_launcher" android:id="@string/la_settings" android:title="@string/la_settings">
<intent android:targetPackage="com.cyanogenmod.trebuchet" android:targetClass="com.cyanogenmod.trebuchet.preference.Preferences" />
</header>
(這個連結到CM9啟動器的設定選項)
==============================================
這裡:
android:icon="@drawable/ic_launcher" 為表徵圖索引名
android:title="@string/la_settings" 是顯示的標題索引名,
<intent android:targetPackage="com.cyanogenmod.trebuchet" android:targetClass="com.cyanogenmod.trebuchet.preference.Preferences" />
為設定要啟動的包名和Activity,可以用 ApkTool 反編譯要啟動的程式,然後開啟 AndroidManifest.xml
查看 package="com.android.settings" 就是包名,至於啟動的Activity,只要找到
<category android:name="android.intent.category.LAUNCHER" />
往上找他所屬的Activity,可以看到類似
<activity android:label="@string/settings_label" android:name="Settings" android:taskAffinity="com.android.settings" android:clearTaskOnLaunch="true" android:launchMode="singleTop">
其中 android:name="Settings" ,Settings就是Activity名,加上包名com.android.settings
就變成了com.android.settings.Settings,這個com.android.settings.Settings也就是我們需要的
android:targetClass 的值。
==============================================
<header android:icon="@drawable/ic_ad_settings" android:id="@string/ad_settings" android:title="@string/ad_settings">
<intent android:targetPackage="com.android.settings" android:targetClass="com.android.settings.TestingSettings" />
</header>
(這個連結到設定的*#*#4636#*#*這條撥號器指令的)
7.第2次回編譯成apk,用壓縮軟體相應的演算法替換回Settings.apk修改過的檔案。
8.替換回手機,搞定!
安卓設定添加項