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只支持两个。
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
在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