自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (4)
  • 收藏
  • 关注

原创 am start -W 统计启动时间点简介

通过am start -W package/componentName可以开启一个Activity例如am start -W com.tcl.testdemo1/.MainActivityStarting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tcl.te...

2023-06-19 00:56:07 367

原创 Android进程生命周期与ADJ

一、 进程生命周期Android系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,最终需要清除旧进程来回收内存。 为了确定保留或终止哪些进程,系统会根据进程中正在运行的组件以及这些组件的状态,将每个进程放入“重要性层次结构”中。 必要时,系统会首先消除重要性最低的进程,然后是清除重要性稍低一级的进程,依此类推,以回收系统资源。进程的重要性,划分5级:前台进程(Foregrou...

2022-05-15 15:25:24 162

原创 StartingWindow 启动添加显示

一、简介应用冷启动时候,Activity组件在它的窗口显示出来之前,可以显示一个启动窗口。等应用加载好第一帧之后, 启动窗口消失,显示应用主界面。这个启动窗口可以看作是Activity组件的预览窗口,是由WindowManagerService服务统一管理的,WindowManagerService服务负责启动和结束。demo_gaitubao_364x619_gaitubao_338...

2021-12-29 23:13:18 508

原创 SurfaceFlinger合成一

一、Producer生产完GraphicBuffer,会通知SurfaceFlinger进行合成逻辑。BuffeQueueProducer 中queueBuffer在完成GraphicBuffer相关操作后,会通知到SurfaceFlinger去执行合成逻辑。下来看下具体过程继承关系:sf12.png时序图:sf11.png1、先来看第一步,为什么是执行ProxyC...

2021-05-28 16:01:00 136

原创 BufferQueue学习

上一篇说完App申请完vsync后要进行绘制,本来要说一下绘制的过程,但是感觉进度有点慢,主要研究sf,所以转换下学习思路。一、BufferQueue基本概念:BufferQueue的核心逻辑是生产者消费者逻辑又是GraphicBuffer管理者,在BufferQueue这个生产者消费者框架中, BufferQueuecore可以理解为数据缓冲区的管理者,代码逻辑在BufferQueue.cp...

2021-05-20 16:38:08 474

原创 Vsync与app、surfaceFlinger关系(2)

App 的Vsync 信号已经进行了注册,那什么时候和怎么返回这个信号到 Choreographer.java的onVsync呢,DispSync对象在创建的时候会启动一个DispSyncThread线程,该线程用于模拟Vsync信号,主要是在DispSync.cpp文件中。20.png堆栈信息如下:2021-03-23 14:21:53.423 968-1128/? D/zx1:...

2021-03-23 20:37:08 121

原创 Vsync与app、surfaceFlinger关系(1)

app要进行更新,必须先要请求一个vsync,等到下个vsync信号来的时候进行界面的更新。一、首先先看一下app请求vsync。我们熟知的TextView.setText 或者ImageView.setImageBitmap,最后都要执行invalidate申请重绘,最后会通过ViewParent递归到ViewRootImpl的invalidate。Choreographer.postCal...

2021-03-22 11:01:30 175

原创 SurfaceFlinger初始化

接着上一节,main_surfaceflinger.cpp main方法中,主要看下三点createSurfaceFlinger(),init(),run()。一、SurfaceFlinger的继承关系frameworks/native/services/surfaceflinger/SurfaceFlinger.h class SurfaceFlinger:public BnSur...

2021-03-08 17:29:14 133

原创 SurfaceFlinger启动流程

一、从init.rc文件开始1、SurfaceFlinger 进程是由 init 进程创建的,运行在独立的 SurfaceFlinger 进程中。init 进程读取 init.rc 文件启动 SurfaceFlinger。路径: /system/core/rootdir/init.rcInit.rc 文件在加载的时候会加载所有的core服务on boot......class_s...

2021-03-02 16:11:00 211

原创 截图框架代码原理 android 11

截图SurfaceControl.screenshot框架代码流程一、应用端接口调用 Bitmap screenshot = SurfaceControl.screenshot(new Rect(),width,height,rotation);通过SurfaceControl.screenshot来获取一个bitmap对象,原理就是创造一个graphicBuffer ,屏幕上面各个lay...

2021-02-18 12:20:07 309

转载 Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing

结果编译时出现:No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing instance of type E(e.g.  x.new A() where x is an instance of E). E指代那个内部类。根据提示,没有可访问的内部类E的实例,必须分配一个...

2018-03-14 17:01:01 495

原创 java 单链表 添加 插入 删除

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-11-30 17:20:40 3319

原创 java单链表的添加、插入、删除

package nodelist;public class LinkListTest {public Node head =new Node();// 定义一个头节点public LinkListTest() {}/*** 添加一个节点* * @param data*/public void addNode(int data) {

2017-11-30 17:19:09 8671 3

原创 二叉树的遍历

二叉树的前序,中序,后序遍历package bintreetraverse;import java.util.LinkedList;import java.util.List;public class BinTreeTraversal {private int[] array = {1,2,3,4};private static List nodeL

2017-11-30 17:10:03 151

原创 单例设计模式

梳理梳理一下自己的IT知识,开始写写博客,无论别人有没有写过,//懒汉式public class SinglePattern {//声明一个静态的私有对象private static SinglePatternsinglePattern = null;//私有的构造方法,防止外部类new对象private SinglePattern(){System.out.p

2017-11-15 16:12:10 116

原创 json缺少其他包

要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:1、commons-lang.jar2、commons-beanutils.jar3、commons-collections.jar4、commons-logging.jar 5、ezmorph.jar6、json-lib-2.2.2-jdk15.jar

2016-12-07 19:15:51 413

原创 shape画虚线

虚线本来用shape很好画,但是有时候画的时候虚线就是不显示,注意一下几点就行。<shapexmlns:android="http://schemas.android.com/apk/res/android"android:shape="line"> 破折线之间的空隙的宽度为dashGap,当dashGap=0dp时,为实线 -->android:wid

2016-11-28 19:07:21 391

转载 gradle 多渠道打包

http://blog.csdn.net/ljchlx/article/details/43059467

2016-07-04 20:40:49 213

原创 mac myEclipse 更改jre版本

选择偏好设置---->Java---->installed JREs,然后右边出来的框里面选择add---->Standard VM,然后填充为如下信息。主要是jreHome,选择到Home这个目录。点击完成后,选择1.6就可以。然后修改某个项目的引用jre。右键某个项目--->Properties--->就ok。

2016-01-22 18:57:24 1013

转载 Error:Cause: org/gradle/api/publication/maven/internal/DefaultMavenFactory Android

当你使用的Gradle版本是2.4以上,Android插件版本是1.3.0以上的时候就会出现这个问题,这时候你只需将android-maven-gradle-plugin插件版本改为classpath ‘com.github.dcendents:android-maven-gradle-plugin:1.3’即可

2015-12-21 14:32:10 459

java实用编程实例

java实用编程实例 很有用的,挺详细的!

2013-04-26

计算机网络课后题

计算机网络课后题 谢希仁 编著 第5版 电子工业出版社

2012-09-07

Java英翻汉软件

一个简单的Java英翻汉软件,用的数据库是SQlserver 2000。能实现查询单词,还有自动的读取数据库中内容,登录后能对数据库进行增加、修改、删除。这是我的一个毕业设计,由于当时赶时间,其中有很多书写格式,代码重复的部分,请大家多多指教!

2012-04-29

把java文件打包成.jar_(jar命令详解).doc

把java文件打包成.jar_(jar命令详解)

2011-11-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除