范例 在 Setting 里加入 HiApk Settings 选项

1.首先用 ApkTool 反编译 Setting.apk,打开 \res\xml\settings.xml,可以看到Settings选项都在里面定义了,在希望加入的地方添加

<com.android.settings.IconPreferenceScreen android:title="@string/hiapk_settings" android:key="hiapk_settings" settings:icon="@drawable/ic_cyanogenmod">        
        <intent android:targetPackage="com.menethil.hiapk.settings"android:targetClass="com.menethil.hiapk.settings.HiapkSettings" />
</com.android.settings.IconPreferenceScreen>

其中 android:title="@string/hiapk_settings" 是显示的标题索引名,settings:icon="@drawable/ic_cyanogenmod" 为图标索引名

<intent android:targetPackage="com.menethil.hiapk.settings" android:targetClass="com.menethil.hiapk.settings.HiapkSettings" />

为设定要启动的包名和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.Settings,也就是我们需要的 android:targetClass 的值。

2.在drawable中放入 settings:icon="@drawable/ic_cyanogenmod" 所定义的图标,名称必须是跟定义的一致,例如这里定义为 ic_cyanogenmod ,放入图标名字就必须是 ic_cyanogenmod.png

3.打开 /res/values/string.xml 和 /res/values-zh-rCN/string.xml ,/res/values-zh-rTW/string.xml ,在其中加入 android:title="@string/hiapk_settings" 定义的字符串的值,以中文 values-zh-rCN 为例:

<string name="hiapk_settings">高级设置</string>

4.重新打包 apk,签名,收工。


你可能感兴趣的:(andorid,反编译,ROM,setting)