当前位置: 首页 > news >正文

江西建设三类人员网站太原网站快速排名优化

江西建设三类人员网站,太原网站快速排名优化,网站漏洞扫描工具,自动化培训网站建设前言 近期接到一个关于谷歌EDLA认证的需求#xff0c;我负责的是谷歌原生桌面布局的修改#xff0c;通过研究源码#xff0c;将涉及到了一些修改思路发出来#xff0c;大家可以参考一下有没有对你有用的信息。主要修改内容有#xff1a; 1、搜索栏、底部导航栏未居中 2、…前言 近期接到一个关于谷歌EDLA认证的需求我负责的是谷歌原生桌面布局的修改通过研究源码将涉及到了一些修改思路发出来大家可以参考一下有没有对你有用的信息。主要修改内容有 1、搜索栏、底部导航栏未居中 2、中部应用未按要求排布详情请参考摹客 3、在原生Google桌面未添加中性S-write和投屏Kshare、欢迎页应用 现状图 参考图 一、谷歌搜索框的修改 涉及修改的地方有 1、Launcher3\res\xml\device_profiles.xml 2、com/android/launcher3/Workspace.java 1、首先观察device_profiles.xml代码一般大屏平板设备会加载6*5的布局手机设备会加载手机的布局该文件里定义了4个不同的布局类型如何确定设备加载哪个布局呢你可以在桌面长按应用图标然后观察可以移动多少个格子然后根据行列数找到要修改的布局位置。比如我设备是加载6 * 5布局我修改这里**launcher:numSearchContainerColumns“5”**修改谷歌搜索框占据5个格子横屏总共7个格子 --这个行数可以根据自己想要的效果修改比如我就改了7*6布局,6行7列--/ grid-optionlauncher:name6_by_5launcher:numRows6 launcher:numColumns7launcher:numSearchContainerColumns5launcher:numFolderRows3launcher:numFolderColumns4launcher:numHotseatIcons0launcher:hotseatColumnSpanLandscape2launcher:numAllAppsColumns6launcher:isScalabletruelauncher:inlineNavButtonsEndSpacingdimen/taskbar_button_margin_6_5launcher:devicePaddingIdxml/paddings_6x5launcher:dbFilelauncher_6_by_5.dblauncher:defaultLayoutIdxml/default_workspace_6x5launcher:deviceCategorytablet display-optionlauncher:nameTabletlauncher:minWidthDps900launcher:minHeightDps820launcher:minCellHeight120launcher:minCellWidth102launcher:minCellHeightLandscape104launcher:minCellWidthLandscape120launcher:iconImageSize60launcher:iconTextSize14launcher:borderSpaceHorizontal16launcher:borderSpaceVertical64launcher:borderSpaceLandscapeHorizontal64launcher:borderSpaceLandscapeVertical16launcher:horizontalMargin54launcher:horizontalMarginLandscape120launcher:allAppsCellWidth96launcher:allAppsCellHeight142launcher:allAppsCellWidthLandscape126launcher:allAppsCellHeightLandscape126launcher:allAppsIconSize60launcher:allAppsIconTextSize14launcher:allAppsBorderSpaceHorizontal8launcher:allAppsBorderSpaceVertical16launcher:allAppsBorderSpaceLandscape16launcher:hotseatBarBottomSpace30launcher:hotseatBarBottomSpaceLandscape40launcher:canBeDefaulttrue //grid-option/profiles2、谷歌搜索框的位置在workspace.java里面修改在该类里面查找这个方法bindAndInitFirstWorkspaceScreen定位到这里 public void bindAndInitFirstWorkspaceScreen() {if (!FeatureFlags.QSB_ON_FIRST_SCREEN) {return;}// Add the first pageCellLayout firstPage insertNewWorkspaceScreen(Workspace.FIRST_SCREEN_ID, getChildCount());// Always add a first page pinned widget on the first screen.if (mFirstPagePinnedItem null) {// In transposed layout, we add the first page pinned widget in the Grid.// As workspace does not touch the edges, we do not need a full// width first page pinned widget.mFirstPagePinnedItem LayoutInflater.from(getContext()).inflate(R.layout.search_container_workspace, firstPage, false);}int cellHSpan mLauncher.getDeviceProfile().inv.numSearchContainerColumns;//格子数从0开始算这里表示搜索框位置从X轴第2格子y轴第3个格子算起x轴占据5(cellHSpan)个格子y轴占据1个格子CellLayoutLayoutParams lp new CellLayoutLayoutParams(1, 2, cellHSpan, 1, FIRST_SCREEN_ID);lp.canReorder false;if (!firstPage.addViewToCellLayout(mFirstPagePinnedItem, 0, R.id.search_container_workspace, lp, true)) {Log.e(TAG, Failed to add to item at (0, 0) to CellLayout);mFirstPagePinnedItem null;}}提示如果一开始桌面没有谷歌搜索框可以使用微件的形式添加添加微件这里又分为两种情况具体使用哪种方式得看系统有没有去读取配置文件没有的话就使用第一种一种是直接在布局文件里面添加比如res/xml/default_workspace_6x5.xml里面添加 appwidgetcontainer-100screen0x1y2spanX5spanY1packageNamecom.google.android.googlequicksearchboxclassNamecom.google.android.googlequicksearchbox.SearchWidgetProvider/ 另外一种方式是在google_gms包下的配置文件里面添加release\vendor\partner_gms\apps\GmsSampleIntegration\res_dhs_full\xml\partner_default_layout.xml例如 ?xml version1.0 encodingutf-8? !-- Copyright (C) 2017 Google Inc. All Rights Reserved. -- favorites!-- Hotseat (We use the screen as the position of the item in the hotseat) --!-- Dialer Messaging Calendar Contacts Camera --!--favorite container-101 screen0 x0 y0 packageNamecom.google.android.dialer classNamecom.google.android.dialer.extensions.GoogleDialtactsActivity/--!--favorite container-101 screen1 x1 y0 packageNamecom.google.android.apps.messaging classNamecom.google.android.apps.messaging.ui.ConversationListActivity/--!-- favorite container-101 screen0 x0 y0 packageNamecom.android.settings classNamecom.android.settings.Settings/ --!-- favorite container-101 screen1 x1 y0 packageNamecom.android.deskclock classNamecom.android.deskclock.DeskClock/ --!-- favorite container-101 screen2 x2 y0 packageNamecom.google.android.calendar classNamecom.android.calendar.event.LaunchInfoActivity/ --!-- favorite container-101 screen3 x3 y0 packageNamecom.google.android.contacts classNamecom.android.contacts.activities.PeopleActivity/ --!-- favorite container-101 screen4 x4 y0 packageNamecom.android.camera2 classNamecom.android.camera.CameraLauncher/ --!-- In Launcher3, workspaces extend infinitely to the right, incrementing from zero --!-- Google folder --!-- Google, Chrome, Gmail, Maps, YouTube, (Drive), (Music), (Movies), Duo, Photos --folder titlestring/google_folder_title screen0 x1 y3favorite packageNamecom.google.android.googlequicksearchbox classNamecom.google.android.googlequicksearchbox.SearchActivity/favorite packageNamecom.android.chrome classNamecom.google.android.apps.chrome.Main/favorite packageNamecom.google.android.gm classNamecom.google.android.gm.ConversationListActivityGmail/favorite packageNamecom.google.android.apps.maps classNamecom.google.android.maps.MapsActivity/favorite packageNamecom.google.android.youtube classNamecom.google.android.youtube.app.honeycomb.Shell$HomeActivity/favorite packageNamecom.google.android.apps.docs classNamecom.google.android.apps.docs.app.NewMainProxyActivity/favorite packageNamecom.google.android.apps.youtube.music classNamecom.google.android.apps.youtube.music.activities.MusicActivity/favorite packageNamecom.google.android.videos classNamecom.google.android.videos.GoogleTvEntryPoint/favorite packageNamecom.google.android.apps.tachyon classNamecom.google.android.apps.tachyon.MainActivity/favorite packageNamecom.google.android.apps.photos classNamecom.google.android.apps.photos.home.HomeActivity//folderfavorite screen0 x5 y3 packageNamecom.android.vending classNamecom.android.vending.AssetBrowserActivity/appwidget screen0 x2 y0 packageNamecom.android.deskclock classNamecom.android.alarmclock.DigitalAppWidgetProvider spanX3 spanY2 /appwidget screen0 x1 y2 packageNamecom.google.android.googlequicksearchbox classNamecom.google.android.googlequicksearchbox.SearchWidgetProvider spanX5 spanY1 / /favorites 注释掉的内容是定义桌面的hotSeat显示的应用其中添加小部件使用的是appwidget标签桌面时钟就可以这样添加folder标签定义的是一个桌面文件夹里面可以定义文件夹要存放的应用。 二、首屏应用位置修改 和谷歌搜索框一样也是在device_profiles.xml文件里面定义桌面的行列数然后根据系统是否会读取partner_default_layout.xml布局文件来决定修改的位置1如果读取则在partner_default_layout.xml里面定义应用的包名和类型以及位置信息例如favorite screen0 x5 y3 packageNamecom.android.vending classNamecom.android.vending.AssetBrowserActivity/表示在screen“0”第一屏的第6列格子第4行格子添加谷歌商店app。2如果不读取partner_default_layout.xml布局文件则在对应的X×X.xml里面修改应用的位置。 三、底部任务栏和导航栏修改 如果设置了hotSeat应用在底部即在partner_default_layout.xml定义的container-101的标签文件里被注释掉的部分代码那么在桌面是显示的是底部固定的应用不会展示最近任务栏如果屏蔽掉了hotSeat固定的应用则默认显示最近任务栏去替换掉固定的应用最近任务栏显示图标的数量与**device_profiles.xml文件里的launcher:numHotseatIcons0**属性有关这里我设置numHotSeatIcon0表示不显示最近任务栏如果你想去掉任务栏可以使用这种方式有其他博客**去掉任务栏的方法是将isTablet的属性设置为false**,意思是将设备设置为手机屏幕手机屏幕不显示最近任务栏导航栏也会默认居中我试过该方法在大屏设备上行不通达不到想要的效果大家可以去看看他写的[大屏设备导航栏居右](https://blog.csdn.net/jydzm/article/details/132849460) 如果使用我的方法即将hotSeat显示的图标数量设置为0launcher:numHotseatIcons0如果直接编译运行时会发生运行时异常通过抓log发现在源码中有多处地方在计算布局的时候都会去除以numHotseatIcons而我们知道除数不能为0所以报错桌面闪退。这个时候我们需要将引发异常的地方修改一下注意numHotseatIcons设置为1和0都会引发异常因为有个地方对numHotseatIcons做了-1操作修改位置如下 com/android/launcher3/DeviceProfile.java 在这类里面按ctrlF查找numShownHotseatIcons将涉及到numShownHotseatIcons的计算都做一层判断如果为0则换一种算法 也可以先在device_profiles.xml里面全局查找追踪numHotseatIcons这个变量一步步追踪到DeviceProfile.java这个类这样会对整个流程更清楚 这里是我修改的具体位置截图有行号给大家参考 注意到这个方法里面也用到了 修改这两个计算方法 修改到这里我们已经把最近任务栏去掉啦 四、接下来就是要把导航栏居中 首先我们观察device_profiles.xml文件注意到有这个变量 查找这个变量追踪代码发现这个变量控制着底部导航栏距离右边框的dp值数值越大越往中间靠拢有了这个思路让导航栏居中也就不难实现了首先我们知道导航栏居右是因为系统判断为大屏设备tablet我们既然要保留tablet这个属性就不能通过改变设备为手机模式来控制导航栏居中所以就可以控制右边距啦 而改变这个值很简单只需要改变引用的资源值即可 我们进入该文件改变右边距 这个值大家可以慢慢调试我这里是居中了。 五、总结 写个总结首先判断系统是否加载partner_gms里面的布局文件再修改布局代码这个源码我研究了一周多网上关于安卓13的launcher3资料不全最终还是得自己研究源码追踪代码期间编译调试了几十次吧 最终效果
http://www.zqtcl.cn/news/699117/

相关文章:

  • 机关门户网站建设顺义做网站
  • 网站开发公司东莞环球军事头条
  • 企业网站管理系统添加教程如何用python开发网页
  • 公司网站建设需要资质wordpress admin
  • 万维网网站301重定向怎么做国家城乡建设规划部网站
  • 现在的网站内容区域做多宽俄文网站开发翻译
  • 上海闵行建设局官方网站做电影网站的流程
  • 怎样做水族馆网站wordpress第三方订阅地址
  • 东莞做网站注意事项如何查网站的百度快照
  • 做资源网站需要什么郑州哪有做网站的公司
  • 不属于网站架构开发一个游戏软件多少钱
  • 电子商务网站建设 市场分析广州有哪些做网站专业的公司
  • 广州网站建设南宁厦门城健建设有限公司网站
  • 课程网站开发的研究现状网页设计制作音乐网站
  • 建设工程法律网站网站美工做专题尺寸多少?
  • 甘肃制作网站godaddy wordpress空间
  • 做淘宝客网站要多少钱心理网站模板
  • 建设手机网站经验分享网站外链建设实例
  • 乔拓云网站注册外贸个人网站
  • 个人怎么做动漫短视频网站建设银行银监会官方网站
  • 长沙网站seo技术厂家山东济宁网站建设设计
  • 外贸网站制作有哪些做体育的网站
  • 广州哪里有做网站推广最牛的网站建
  • 建设网站用户名是什么原因世界500强企业排名2020
  • 创建网站要找谁手机网站后台源码
  • canvas网站源码网站静态和动态区别
  • 网站建设需要了解哪些方面数据分析工具
  • 求个网站没封的2021网站建设初步课程介绍
  • 沈阳网站前端网站建栏目建那些
  • 经典网站案例江苏省建设厅官网