技术标签: android 8.0 launcher Android各版本
1. 文件路径
vendor/go-gms/apps_go/GmsSampleIntegrationGo/res/xml/partner_default_layout.xml
2. 屏幕划分
最底侧和中间屏幕是独立开来的。最底侧的图标分别位于第0/1/2/3屏,中间的屏幕和其右侧的屏幕处于第0/1屏。
2.1 最底侧加单个图标
<!-- Hotseat (We use the screen as the position of the item in the hotseat) -->
<!--FileManager-->
<favorite
className="com.mediatek.filemanager.FileManagerOperationActivity"
container="-101"
packageName="com.mediatek.filemanager"
screen="0" />//第1个icon位于第0屏
<!--Chrome-->
<favorite
className="com.google.android.apps.chrome.Main"
container="-101"
packageName="com.android.chrome"
screen="1"/>//第2个icon位于第1屏
<!--Gmail-->
<favorite
className="com.google.android.gm.ConversationListActivityGmail"
container="-101"
packageName="com.google.android.gm.lite"
screen="2"//第2个icon位于第1屏
x="0" //和x/y的坐标无关
y="9" />
<!--Camera-->
<favorite
className="com.android.camera.CameraLauncher"
container="-101"
packageName="com.mediatek.camera"
screen="3"
x="8"
y="0" />
2.2 中间部分添加文件
<folder
screen="0"
title="@string/google_folder_title"
x="0"
y="3"> //位于第0屏的(0, 3)位置
<!--Google Go-->
<favorite
className="com.google.android.apps.searchlite.ui.SearchActivity"
packageName="com.google.android.apps.searchlite" />
<!--Assistant Go-->
<favorite
className="com.google.android.apps.assistant.go.MainActivity"
packageName="com.google.android.apps.assistant"/>
</folder>
<folder
screen="0"
title="@string/google_folder_title"
x="3"
y="3">//位于第0屏的(3, 3)位置
<favorite
className="com.android.vending.AssetBrowserActivity"
packageName="com.android.vending"/>
</folder>
注:针对某一个菜单,要添加到桌面,可以使用uri,也可以使用className和packageName。若前者不好找,建议使用后者。
<resolve
launcher:screen="0"
launcher:x="0"
launcher:y="-1" >
<favorite className="com.google.zxing.client.android.CaptureActivity" packageName="com.google.zxing.client.android"/>
</resolve>
<resolve
launcher:screen="0"
launcher:x="3"
launcher:y="-1" >
<favorite launcher:uri="#Intent;action=android.media.action.STILL_IMAGE_CAMERA;end" />
<favorite launcher:uri="#Intent;action=android.intent.action.CAMERA_BUTTON;end" />
</resolve>
3 查看用的是mtk的launcher还是Google的launcher
文件路径:alps/device/mediatek/common/ago/device.mk
ifeq (yes,$(strip $(MTK_GMO_RAM_OPTIMIZE)))
PRODUCT_PACKAGES += Launcher3Go
else
PRODUCT_PACKAGES += Launcher3
# Add MtkLauncher3 to replace Launcher3 when vendor code is available
ifneq ($(wildcard vendor/mediatek/proprietary/packages/apps/Launcher3/Android.mk),)
PRODUCT_PACKAGES += MtkLauncher3
endif
endif
在对应项目内看MTK_GMO_RAM_OPTIMIZE是否打开。如
device/mediateksample/k80hd_bsp_fwv_512m/ProjectConfig.mk
MTK_GMO_RAM_OPTIMIZE = yes
4 修改桌面布局无效,可以尝试使用一下两种方法清理Launcher
1) Settings / Apps & notifications / See all apps / Launcher3 / Storage / CLEAR_DATA和CLEAR_CACHE
2) adb shell pm clear com.android.launcher3
5 launcher对应的数据库
1) cd到:/data/data/com.android.launcher3/databases
2) ls
app_icons.db launcher.db widgetpreviews.db
3) sqlite3 launcher.db
SQLite version 3.19.4 2017-08-18 19:28:12
Enter ".help" for usage hints.
4) sqlite> .tables
android_metadata favorites workspaceScreens
5) sqlite> select * from favorites;//sql语句要带;
6. 主干修改和项目拷贝路径修改
若要修改到主干,则会影响到所有的项目;
若修改了某一个项目的拷贝路径下的文件,执行拷贝后,会覆盖主干下的对应内容,修改只会对该项目有效。
以不带gms的项目为例,修改桌面布局:
1). 若每个项目都要改,则直接在主干中修改
alps/packages/apps/Launcher3/res/xml/default_workspace_4x4.xml
alps/packages/apps/Launcher3/res/xml/dw_phone_hotseat.xml
2.若某个项目要修改,只是修改
sagereal/product/MP3P_common_no_GMS/alps/packages/apps/Launcher3/res/xml/default_workspace_4x4.xml
sagereal/product/MP3P_common_no_GMS/alps/packages/apps/Launcher3/res/xml/dw_phone_hotseat.xml
执行拷贝后,上述文件会覆盖以下对应文件:
alps/packages/apps/Launcher3/res/xml/default_workspace_4x4.xml
alps/packages/apps/Launcher3/res/xml/dw_phone_hotseat.xml
import java.util.*;//如同二叉树的层次遍历public class Bfs { public static class Node implements Comparable<Node> { private String name; private TreeSet<Node> set = new TreeS...
写在前面csdn的markdown放到博客园里感觉风格迥异,所以还是找个好点的css吧,css这个我没有深入了解,拼凑了一个css。对于有python代码,而且需要自动生成目录的博文很有帮助,其他的可以参考 参考博客去设置。参考博客优化博客园Markdown样式(代码行号、版权信息、章节目录等)定制博客css自定义css样式美化博客园开始定制选个博客皮肤,在页定制css代码中添加如下...
【代码】实用的latex符号。字母变体、带圈圈的特殊符号、希腊字符
mysql-connector-java.jar包的下载教程
数组与矩阵类似,只是数组的维度可以大于2,数组可以用的函数为array()x<-array(vector,dimensions,dimnames)其中,vector为数组中的数据,dimensions为一个数值型向量,dimnames为一个可选的,各维度名称标签的列表。具体,举例如下:...
ail 命令可用于查看文件的内容 tail notes.log # 默认显示最后 10 行 tail -n 100 notes.log #显示最后100行数据 tail -n +100 notes.log #显示从第100行开始,直到最后行的数据 tail -f 等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止 tail -f notes.log 按下(Ctrl+C)组合键停止追踪 ..
Spire.PDF是一个专业的PDF组件,能够独立地创建、编写、编辑、操作和阅读PDF文件,支持 .NET、Java、WPF和Silverlight。 Spire.PDF支持通过Page.CreateTemplate()和Page.Canvas.DrawTemplate()方法来实现文档复制...
1 Django自带后台系统系统地址 1 urlpatterns = [ 2 url(r‘^admin/‘, admin.site.urls), 3 ] 访问:http://127.0.0.1:8000/admin/ 创建新用户执行命令:createsuperuserusername:adminemail:[email protected]
图像任务综述图像任务图像分类目标检测图像分割模型选择图像增强视频任务图像任务图像分类目标检测图像分割模型选择maskrcnn1 评价指标:Average Precision:准确率inference速度:k-means图像增强视频任务...
%绘制球谐函数图像%degree,Ynm的n,阶%order,Ynm的m,级%method,绘图的R%%示例-绘制球谐函数表maxD=3;%最高阶数forn=0:maxDform=0:nsubplot(maxD+1,maxD+1,n*(maxD+1)+m+1)plot_sph_harm(n,m,2);endendfunctionplot_sph_ha...
1. 单前导下划线单个下划线是一个Python命名约定,表示这个名称是供内部使用的。 它通常不由Python解释器强制执行,仅仅作为一种对程序员的提示。如果使用通配符从模块中导入所有名称(from unittest import *),则Python不会导入带有前导下划线的名称(除非模块定义了覆盖此行为的__all__列表)常规导入(eg: from unittest import _fun)不受前导单个下划线命名约定的影响。2. 单末尾下划线单个末尾下划线(后缀)是一个约定,用
综合前面的博客,设置系统为SVC模式,关闭开门狗,关闭中断,关闭MMU和cache,基地址初始化,点亮一灯大师,这一小节根据前面的架构分析来完成时钟初始化部分。1. 时钟脉冲信号概念:时钟脉冲信号:按一定的电压幅度,一定的时间间隔连续发出的脉冲信号。时钟脉冲信号是时序逻辑的基础。它用于决定逻辑单元中的状态何时更新。数字芯片中众多的晶体管都工作在开关状态,它们的导通和关断动作无不是按