launcher源码分析与修改

1.代码结构与流程

mtk中的代码与网上分析略有不同,

(1)其中修改默认壁纸

  替换 frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg即可(注意找到对应的分辨率)

壁纸默认放在res/drawable-nodip目录下

(2)搜索框,

  写入在布局文件涉及到search_container_workspace,如果要去掉,把QsbContainerView的 android:layout_height 改为0。

(3)hotseat

2.代码修改思路与设计原理

在mtk手机中,主界面由workspace中cellLayout与hotseat组成。qsb添加到cellayout中,当用户左右滑动时会切换中间的CellLayout部分,CellLayout只支持两个。

launcher源码分析与修改_第1张图片

CellLayout主要的作用是装在快捷方式或者小部件等,PageIndicator指示你当前处于第几个CellLayout上面,最下面的四个图标所占的位置叫做Hotseat,主要是放置短信,拨号等最常用的应用图标。在mtk中,SearchDrop被去掉,qsb替换它。当用户长按桌面时,中间的CellLayout会缩小,下面的Hotseat和上面的SearchDropTargetView会隐藏,从而显示出隐藏的三个菜单按钮。

(1)

(2)QsbContainerView容器继承自FragmentLayout帧布局

WorkSpace.java文件引入search_container_workspace布局文件,QsbContainerView是该文件中的自定义控件,没有引入布局文件。QsbContainerView中定义了内部类QsbFragment-->

QsbWidgetHost(AppWidgetHost)-->QsbWidgetHostView(AppWidgetHostView)-->qsb_default_view.xml。
WorkSpace的bindAndInitFirstWorkspaceScreen方法中,生成qsb绑定到CellLayout firstPage.

AppWidget是“窗口小部件”,实现桌面Launcher上显示控件机制,详细参考:https://blog.csdn.net/thl789/article/details/7879257

dw_phone_hotseat.xml定义最下方的四个框。default_workspace.xml定义用户默认的app布局在workspace,开机后解析xml文件生成快捷方式添加到页面。LauncherProvider.java定义了DatabaseHelper将用户配置信息插入到数据库,launcher的设置项记录在LauncherSettings实体中。AutoInstallLayout解析xml文件获取信息,调用LauncherAppState-->InvariantDeviceProfile

(4)获取应用程序列表

WidgetsModel.java-->InvariantDeviceProfile.java-->device_profiles.xml --->default_workspace.xml-->dw_phone_hotseat.xml

3.代码实现与测试

dpkg --list

sudo chmod -R 777 path

在log日志的文件夹下打开终端

./mk -ud VQ502_GH5024_Spark mm vendor/mediatek/proprietary/packages/apps/Launcher3

adb reboot 重启

adb root 获取root权限

adb disable-verity

adb remount 重新挂载,有时重新挂载才有权限修改

adb devices 列表

adb push  out/target/product/k39tv1_bsp_1g/system/priv-app/MtkLauncher3/MtkLauncher3.apk /system/priv-app/MtkLauncher3/MtkLauncher3.apk out/target/product/k39tv1_bsp_1g/system/priv-app/MtkLauncher3/MtkLauncher3.apk:

>>>

ubuntun安装teamviewer

下载deb包,使用dpkg -i packagename。出错,sudo apt-get install -f,然后使用上面命令重新进行安装。-f参数为--fix-broken的简写形式,表示修复依赖关系

卸载软件包的三种方法,搜索 packageManager打开、命令卸载使用dpkg --list和apt-get --purge remove 、software center。

在ubuntu中进行软件开发中经常遇到,搜索文本内容,grep -rn 'string'  ~/   搜索文件位置 find |grep filename ,搜索文件夹 find name -d

ubuntu 安装搜狗拼音输入:下载deb包,卸载ibus然后安装fcitx,sudo apt-get -purge ibus,

sudo apt-get install fcitx-table-wbpy fcitx-config-gtk

切换输入法 im-config -n fcitx ,shutdown -r now,然后安装sogoupinyin,error 修复依赖关系重新安装。最后进行输入法设置,systemsetting中设置langue

你可能感兴趣的:(Android)