Launcher3 模块的简单设计
Lancher3 路劲: Z:\xxx\packages\apps\Launcher3
任务
1、AllApps背景透明化。
2、Allapps前3个图标变为Chrome、youtube、play商店。
3、长按桌面空白处在弹出的按钮下添加一个图标变大按钮,一个图标变小按钮,点击按钮图标变大或变小。
4、APP 标题两行显示
5、后台任务界面添加一个按钮,点击弹出吐司,默认图标为方形。。
单编
Linux 指令
-
cd (项目目录)
-
source build/envsetup.sh
-
lunch xxx-userdebug-gms trunk
-
make Launcher3QuickStepGo
push
adb root
adb remount
adb push Z:\xxx\out\target\product\xxx\system_ext\priv-app\Launcher3QuickStepGo\Launcher3QuickStepGo.apk /system_ext/priv-app/Launcher3QuickStepGo/
adb reboot
任务 1
思路:先利用 uiautomatorviewer.bat 工具找到能够包括抽屉模式背景的最小背景布局
修改布局背景时不应在对应 xml 中使用 background ,而应该在清单文件 AndroidManifest.xml中修改主题。
路径: apps/Launcher3/res/values/styles.xml
修改:<item name="allAppsScrimColor">#01000000</item>
任务 2
Allapps前3个图标变为Chrome、youtube、play商店。
Chrome应用路径: Z:\xxx\out\target\product\xxx\product\app\Chrome
注意:严格按照所提供的模板 空格与 / 需注意!!!
修改路径: packages\apps\Launcher3\ext\res\xml\arrays.xml
<!-- Add for customize app position feature: start -->
<string-array name="customize_app_position" translatable="false">
<!-- ex: packageName/className#position -->
<!-- ex: com.android.settings/#0 -->
<item> com.android.chrome/#0</item>
<item> com.google.android.youtube/#1</item>
<item> com.android.vending/#2</item>
</string-array>
<!-- Add for customize app position feature: end -->
在 com 命令行窗口输入 adb shell am monitor
利用此命令可以获取 apk 的包名。
任务 3
长按桌面空白处在弹出的按钮下添加一个图标变大按钮,一个图标变小按钮,点击按钮图标变大或变小。
查询后找到 OptionsPopupView.java 文件, 路径:Z:\xxx\packages\apps\Launcher3\src\com\android\launcher3\views\OptionsPopupView.java
在下述方法 showDefaultOptions(Launcher launcher, float x, float y) 中添加 PopupView, 并且对相应 string 进行定义。
showDefaultOptions(Launcher launcher, float x, float y)
options.add(new OptionItem(R.string.icon_bigger_button_text,R.drawable.ic_setting,LAUNCHER_SELECT_MODE_RESIZE_BIGGER_ICON, OptionsPopupView::biggerIconSizePx));
options.add(new OptionItem(R.string.icon_smaller_button_text,R.drawable.ic_setting, LAUNCHER_SELECT_MODE_RESIZE_SMALLER_ICON, OptionsPopupView::smallerIconSizePx));
思路是通过 PopupView 的点击事件发送广播
private static final
String BIGGER_ICONPX_ACTION =
"com.android.launcher3.views.OptionsPopupView_bigger";
private static final
String SMALLER_ICONPX_ACTION =
"com.android.launcher3.views.OptionsPopupView_smaller";
public static boolean biggerIconSizePx(View view){
Launcher launcher = Launcher.getLauncher(view.getContext());
Intent intent = new Intent();
intent.setAction(BIGGER_ICONPX_ACTION);
launcher.sendBroadcast(intent);
return true;
}
public static boolean smallerIconSizePx(View view){
Launcher launcher = Launcher.getLauncher