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

做商城网站哪里买成都个人网站

做商城网站哪里买,成都个人网站,网页建立站点,怎么给网站做开场动画如何通过dump中的内容找到对应的代码#xff1f; 我们dump窗口层级发现会有很多信息#xff0c;adb shell dumpsys activity containers 这里我们以其中的DefaultTaskDisplayArea为例 在源码的framework目录下查找该字符串#xff0c;找到对应的代码就可以通过打印堆栈或者…如何通过dump中的内容找到对应的代码 我们dump窗口层级发现会有很多信息adb shell dumpsys activity containers 这里我们以其中的DefaultTaskDisplayArea为例 在源码的framework目录下查找该字符串找到对应的代码就可以通过打印堆栈或者搜索代码跟踪的方式找到其调用逻辑 final TaskDisplayArea defaultTaskDisplayArea new TaskDisplayArea(content, wmService,DefaultTaskDisplayArea, FEATURE_DEFAULT_TASK_CONTAINER);也就是这一句 当然我们上篇文章也讲到了DisplayContent代表的屏幕的DisplayArea层级结构的根节点我们可以直接从DisplayContent.java的构造方法出发追踪其流程 DisplayContent初始化 代码路径/frameworks/base/services/core/java/com/android/server/wm/DisplayContent.java /*** Create new {link DisplayContent} instance, add itself to the root window container and* initialize direct children.* param display May not be null.* param root {link RootWindowContainer}*/DisplayContent(Display display, RootWindowContainer root) {super(root.mWindowManager, DisplayContent, FEATURE_ROOT);......final Transaction pendingTransaction getPendingTransaction();configureSurfaces(pendingTransaction);pendingTransaction.apply();......}创建新的DisplayContent实例将其自身添加到根窗口容器并初始化直接子级这里我主要关注一下configureSurfaces(pendingTransaction); /*** Configures the surfaces hierarchy for DisplayContent* This method always recreates the main surface control but reparents the children* if they are already created.* param transaction as part of which to perform the configuration*/private void configureSurfaces(Transaction transaction) {final SurfaceControl.Builder b mWmService.makeSurfaceBuilder(mSession).setOpaque(true).setContainerLayer().setCallsite(DisplayContent);mSurfaceControl b.setName(getName()).setContainerLayer().build();if (mDisplayAreaPolicy null) {// Setup the policy and build the display area hierarchy.// Build the hierarchy only after creating the surface so it is reparented correctlymDisplayAreaPolicy mWmService.getDisplayAreaPolicyProvider().instantiate(mWmService, this /* content */, this /* root */,mImeWindowsContainer);}......}通过DisplayContent来配置图层结构 DisplayAreaPolicy初始化 /frameworks/base/services/core/java/com/android/server/wm/DisplayAreaPolicy.java mDisplayAreaPolicy mWmService.getDisplayAreaPolicyProvider().instantiate(mWmService, this /* content */, this /* root */,mImeWindowsContainer)调用DisplayAreaPolicy中的Provider接口instantiate方法去初始化一个DisplayArea层级结构 DisplayAreaPolicy.Provider /*** Provider for {link DisplayAreaPolicy} instances.** pBy implementing this interface and overriding the* {code config_deviceSpecificDisplayAreaPolicyProvider}, a device-specific implementations* of {link DisplayAreaPolicy} can be supplied.*/public interface Provider {/*** Instantiates a new {link DisplayAreaPolicy}. It should set up the {link DisplayArea}* hierarchy.** see DisplayAreaPolicy#DisplayAreaPolicy*/DisplayAreaPolicy instantiate(WindowManagerService wmService, DisplayContent content,RootDisplayArea root, DisplayArea.Tokens imeContainer);用来实例化一个DisplayAreaPolicy对象这个对象应该建立起DisplayArea层级结构实际走到的则是DisplayAreaPolicy.Provider的实现类DisplayAreaPolicy.DefaultProvider.instantiate方法 DisplayAreaPolicy.DefaultProvider /** Provider for platform-default display area policy. */static final class DefaultProvider implements DisplayAreaPolicy.Provider {Overridepublic DisplayAreaPolicy instantiate(WindowManagerService wmService,DisplayContent content, RootDisplayArea root,DisplayArea.Tokens imeContainer) {//1.创建一个名为“DefaultTaskDisplayArea”的TaskDisplayArea,并将其添加到List中final TaskDisplayArea defaultTaskDisplayArea new TaskDisplayArea(content, wmService,DefaultTaskDisplayArea, FEATURE_DEFAULT_TASK_CONTAINER);final ListTaskDisplayArea tdaList new ArrayList();tdaList.add(defaultTaskDisplayArea);// Define the features that will be supported under the root of the whole logical// display. The policy will build the DisplayArea hierarchy based on this.//2.创建HierarchyBuilderfinal HierarchyBuilder rootHierarchy new HierarchyBuilder(root);// Set the essential containers (even if the display doesnt support IME).//3.1添加ImeContainer到HierarchyBuilder//3.2创建并保存默认TaskDisplayArea到HierarchyBuilderrootHierarchy.setImeContainer(imeContainer).setTaskDisplayAreas(tdaList);if (content.isTrusted()) {// Only trusted display can have system decorations.//4.为HierarchyBuilder添加FeatureconfigureTrustedHierarchyBuilder(rootHierarchy, wmService, content);}// Instantiate the policy with the hierarchy defined above. This will create and attach// all the necessary DisplayAreas to the root.//5.生成DisplayArea层级结构return new DisplayAreaPolicyBuilder().setRootHierarchy(rootHierarchy).build(wmService);}这里DefaultProvider实现了这个接口。 这个方法主要干了这几件事情 1.创建一个名为“DefaultTaskDisplayArea”的TaskDisplayArea,并将其添加到List中 2.创建HierarchyBuilder 3.1添加ImeContainer到HierarchyBuilder 3.2添加TaskDisplayArea到HierarchyBuilder 4.为HierarchyBuilder添加Feature 5.生成DisplayArea层级结构
http://www.w-s-a.com/news/350874/

相关文章:

  • 石家庄做网站的公司有哪些微信自媒体网站建设
  • 池州哪里有做网站注册公司有哪些风险
  • 做古代风格头像的网站对网站政务建设的建议
  • 网站搜索栏怎么做设计个网站要多少钱
  • 阿里巴巴网站建设目标wamp wordpress
  • 自己做的网站怎么挂网上金蝶erp
  • 网站的页面由什么组成淘宝网网站建设的需求分析
  • 软文网站推广法dede5.7内核qq个性门户网站源码
  • 个人备案网站名称校园网站建设特色
  • vr超市门户网站建设班级网站怎么做ppt模板
  • 网站建设一般是用哪个软件刚开始做写手上什么网站
  • 用jsp做的网站源代码下载有哪些做红色旅游景点的网站
  • 网站开发的技术选型黄石市网站建设
  • 做直播网站需要证书吗专做宝宝的用品网站
  • 网站标题用什么符号网站制作交易流程
  • dede模板网站教程jsp网站搭建
  • 上海网站开发外包公司鲜花导购网页制作
  • 宿州外贸网站建设公司个人注册网站一般做什么
  • 小公司做网站用哪种服务器什么是网站代理
  • 青岛李村网站设计公司cms建站平台
  • 做saas网站可行吗许昌抖音推广公司
  • 网站建设找谁做seo基础知识培训
  • 微网站怎么做的好建设网站不会写代码
  • 广州外贸网站制作wordpress信息搜索插件
  • 福建高端网站建设个人公众号怎么制作教程
  • 企业网站有哪些举几个例子wordpress ie兼容插件
  • 高端的深圳网站页面设计福清市建设局官方网站
  • 安装网站到服务器合肥建设干部学校网站
  • 影视网站如何做销售案例网站
  • 建设网站对比方案龙岗网站开发公司