如何利用Android源码定制你想要的系统桌面?
如何利用Android源码定制你想要的系统桌面?比如:
这样的桌面很简洁,看起来很舒适,那如何在做才能够达到这样的效果呢?下面讲述我的定制方式。
要能够达到这样的效果,做了如下改动
1. 将所有应用直接放在桌面上。
删除了主菜单,所有应用全部放在桌面上,现在很多消费类手机都是流行这桌面的,并且自带的指定的应用不能够在桌面上被删除。
在packages/apps/Launcher3/src/com/android/launcher3/LauncherAppState.java中isDisableAllApps方法中做如下改动:
2. 桌面上隐藏某些不需要的应用图标
有些需求是需要隐藏一些系统自带应用图标,不让用户看到,简化桌面。比如:自带的音乐、FM等等等
复制代码
3. 对桌面的应用图标重新排布
对桌面的应用图标,按照自己的需求进行重新排布
4. 修改桌面默认壁纸
将自己中意的壁纸或者客户需要的壁纸更改为系统桌面默认的壁纸,按照分辨率,替换掉壁纸。桌面壁纸路径如下 :
复制代码
5. 应用默认放在第一屏当用户安装应用时,应用的快捷图标,默认放在桌面的第一屏
复制代码
6. 根据需求保留应用
很多需要定制的界面,都是根据需求而做的,比如上述的图片,根据需求,就保留了如下应用图标:
时钟、日历、文件管理、相机
电话、电话簿、设置、信息、图库
总结:
自己定制一个界面是比较繁琐的事情,需要考虑界面的美观,以及桌面的流畅。不过,跨过繁琐,一个全新的系统桌面展现在你的面前,会很有成就感!
这样的桌面很简洁,看起来很舒适,那如何在做才能够达到这样的效果呢?下面讲述我的定制方式。
要能够达到这样的效果,做了如下改动
1. 将所有应用直接放在桌面上。
删除了主菜单,所有应用全部放在桌面上,现在很多消费类手机都是流行这桌面的,并且自带的指定的应用不能够在桌面上被删除。
在packages/apps/Launcher3/src/com/android/launcher3/LauncherAppState.java中isDisableAllApps方法中做如下改动:
- packages/apps/Launcher3/src/com/android/launcher3/LauncherAppState.java
- public static boolean isDisableAllApps() {
- // Returns false on non-dogfood builds.
- - return getInstance().mBuildInfo.isDogfoodBuild() &&
- - Utilities.isPropertyEnabled(Launcher.DISABLE_ALL_APPS_PROPERTY);
- + //return getInstance().mBuildInfo.isDogfoodBuild() &&
- + // Utilities.isPropertyEnabled(Launcher.DISABLE_ALL_APPS_PROPERTY);
- + return true;
- }
2. 桌面上隐藏某些不需要的应用图标
有些需求是需要隐藏一些系统自带应用图标,不让用户看到,简化桌面。比如:自带的音乐、FM等等等
- packages/apps/Launcher3/src/com/android/launcher3/LauncherModel.java
- //mtk add begin
- mBgAllAppsList.removePackage("com.android.email", user, true);
- mBgAllAppsList.removePackage("com.android.browser", user, true);
- mBgAllAppsList.removePackage("com.android.soundrecorder", user, true);
- mBgAllAppsList.removePackage("com.mediatek.fmradio", user, true);
- mBgAllAppsList.removePackage("com.android.quicksearchbox", user, true);
- mBgAllAppsList.removePackage("com.android.documentsui", user, true);
- mBgAllAppsList.removePackage("com.android.music", user, true);
- mBgAllAppsList.removePackage("com.mediatek.datatransfer", user, true);
- mBgAllAppsList.removePackage("com.android.calculator2", user, true);
- mBgAllAppsList.removePackage("com.easier.code", user, true);
- mBgAllAppsList.removePackage("com.android.providers.downloads.ui", user, true);
- mBgAllAppsList.removePackage("com.android.camera.CameraLauncher", user, true);
- mBgAllAppsList.added.removeAll(mBgAllAppsList.removed);
- mBgAllAppsList.removed.clear();
- //mBgAllAppsList.removePackage("PackageName", user, true); PackageName为要隐藏的包名
3. 对桌面的应用图标重新排布
对桌面的应用图标,按照自己的需求进行重新排布
- packages/apps/Launcher3/res/xml/default_workspace_4x4.xml
- Example: //例子
- <favorite
- launcher:packageName="com.android.deskclock"
- launcher:className="com.android.deskclock.DeskClock"
- launcher:screen="1"
- launcher:x="0"
- launcher:y="3" />
4. 修改桌面默认壁纸
将自己中意的壁纸或者客户需要的壁纸更改为系统桌面默认的壁纸,按照分辨率,替换掉壁纸。桌面壁纸路径如下 :
- frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg
- frameworks/base/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.jpg
- frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.jpg
- frameworks/base/core/res/res/drawable-xhdpi/default_wallpaper.jpg
- frameworks/base/core/res/res/drawable-xxhdpi/default_wallpaper.jpg
- frameworks/base/core/res/res/drawable-xxxhdpi/default_wallpaper.jpg
5. 应用默认放在第一屏当用户安装应用时,应用的快捷图标,默认放在桌面的第一屏
- packages/apps/Launcher3/src/com/android/launcher3/LauncherModel.java
- - int startSearchPageIndex = workspaceScreens.isEmpty() ? 0 : 1;
- + //int startSearchPageIndex = workspaceScreens.isEmpty() ? 0 : 1;
- + int startSearchPageIndex = 0;
6. 根据需求保留应用
很多需要定制的界面,都是根据需求而做的,比如上述的图片,根据需求,就保留了如下应用图标:
时钟、日历、文件管理、相机
电话、电话簿、设置、信息、图库
总结:
自己定制一个界面是比较繁琐的事情,需要考虑界面的美观,以及桌面的流畅。不过,跨过繁琐,一个全新的系统桌面展现在你的面前,会很有成就感!