如何利用Android源码定制你想要的系统桌面?

如何利用Android源码定制你想要的系统桌面?比如:
 
这样的桌面很简洁,看起来很舒适,那如何在做才能够达到这样的效果呢?下面讲述我的定制方式。

要能够达到这样的效果,做了如下改动
1. 将所有应用直接放在桌面上。
删除了主菜单,所有应用全部放在桌面上,现在很多消费类手机都是流行这桌面的,并且自带的指定的应用不能够在桌面上被删除。
在packages/apps/Launcher3/src/com/android/launcher3/LauncherAppState.java中isDisableAllApps方法中做如下改动:

  1. packages/apps/Launcher3/src/com/android/launcher3/LauncherAppState.java
  2.      public static boolean isDisableAllApps() {
  3.          // Returns false on non-dogfood builds.
  4. -        return getInstance().mBuildInfo.isDogfoodBuild() &&
  5. -                Utilities.isPropertyEnabled(Launcher.DISABLE_ALL_APPS_PROPERTY);
  6. +        //return getInstance().mBuildInfo.isDogfoodBuild() &&
  7. +        //        Utilities.isPropertyEnabled(Launcher.DISABLE_ALL_APPS_PROPERTY);
  8. +        return true;
  9.      }

2. 桌面上隐藏某些不需要的应用图标
有些需求是需要隐藏一些系统自带应用图标,不让用户看到,简化桌面。比如:自带的音乐、FM等等等

  1. packages/apps/Launcher3/src/com/android/launcher3/LauncherModel.java
  2.      //mtk add begin
  3.      mBgAllAppsList.removePackage("com.android.email", user, true);
  4.      mBgAllAppsList.removePackage("com.android.browser", user, true);
  5.      mBgAllAppsList.removePackage("com.android.soundrecorder", user, true);
  6.      mBgAllAppsList.removePackage("com.mediatek.fmradio", user, true);
  7.      mBgAllAppsList.removePackage("com.android.quicksearchbox", user, true);
  8.      mBgAllAppsList.removePackage("com.android.documentsui", user, true);
  9.      mBgAllAppsList.removePackage("com.android.music", user, true);
  10.      mBgAllAppsList.removePackage("com.mediatek.datatransfer", user, true);
  11.      mBgAllAppsList.removePackage("com.android.calculator2", user, true);
  12.      mBgAllAppsList.removePackage("com.easier.code", user, true);
  13.      mBgAllAppsList.removePackage("com.android.providers.downloads.ui", user, true);
  14.      mBgAllAppsList.removePackage("com.android.camera.CameraLauncher", user, true);
  15.      mBgAllAppsList.added.removeAll(mBgAllAppsList.removed);
  16.      mBgAllAppsList.removed.clear();
  17.      //mBgAllAppsList.removePackage("PackageName", user, true); PackageName为要隐藏的包名
复制代码

3. 对桌面的应用图标重新排布
对桌面的应用图标,按照自己的需求进行重新排布

  1. packages/apps/Launcher3/res/xml/default_workspace_4x4.xml
  2. Example: //例子
  3.     <favorite
  4.         launcher:packageName="com.android.deskclock"
  5.         launcher:className="com.android.deskclock.DeskClock"
  6.         launcher:screen="1"
  7.         launcher:x="0"
  8.         launcher:y="3" />

4. 修改桌面默认壁纸
将自己中意的壁纸或者客户需要的壁纸更改为系统桌面默认的壁纸,按照分辨率,替换掉壁纸。桌面壁纸路径如下 :

  1. frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg
  2. frameworks/base/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.jpg
  3. frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.jpg
  4. frameworks/base/core/res/res/drawable-xhdpi/default_wallpaper.jpg
  5. frameworks/base/core/res/res/drawable-xxhdpi/default_wallpaper.jpg
  6. frameworks/base/core/res/res/drawable-xxxhdpi/default_wallpaper.jpg
复制代码

5. 应用默认放在第一屏
当用户安装应用时,应用的快捷图标,默认放在桌面的第一屏
  1. packages/apps/Launcher3/src/com/android/launcher3/LauncherModel.java
  2. -                        int startSearchPageIndex = workspaceScreens.isEmpty() ? 0 : 1;
  3. +                        //int startSearchPageIndex = workspaceScreens.isEmpty() ? 0 : 1;
  4. +                        int startSearchPageIndex = 0;
复制代码

6. 根据需求保留应用

很多需要定制的界面,都是根据需求而做的,比如上述的图片,根据需求,就保留了如下应用图标:
时钟、日历、文件管理、相机
电话、电话簿、设置、信息、图库


总结:
自己定制一个界面是比较繁琐的事情,需要考虑界面的美观,以及桌面的流畅。不过,跨过繁琐,一个全新的系统桌面展现在你的面前,会很有成就感!

猜你喜欢

转载自blog.csdn.net/m0_37526672/article/details/80497096
今日推荐