自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 安卓广播发送接收流程

安卓广播发送接收流程详细分析

2024-04-16 19:59:02 1261

原创 Android Choreographer分析

安卓VSYNC信号接收器,实现稳定的帧率刷新机制,统一管理应用的输入、动画和绘制等任务的执行时机。

2023-05-08 21:59:56 813 2

原创 Android InputEventReceiver事件接收流程分析

从native事件接收到onTouchEvent流程分析。

2023-05-03 19:44:21 1792

原创 Android InputChannel事件发送接收系统分析

安卓InputEvent发送接收流程系统分析,InputChannel创建过程,事件发送接收过程。

2023-05-03 18:09:46 1110

原创 Android inputflinger系统分析

安卓Input系统分析,对inputflinger源码全面分析,从事件读取InputReader到事件分发InputDispatcher,全面了解native事件读取分发机制。

2023-05-03 17:57:36 1313

原创 Android分屏流程分析

安卓分屏流程分析

2023-04-24 19:27:43 3574 1

原创 从setContentView到onResume应用显示过程分析

安卓应用程序从setContentView到onResume显示过程分析,DecorView创建过程。

2023-04-02 12:01:21 448

原创 从zygote到onCreate应用启动过程分析

安卓应用程序从zygote到onCreate

2023-03-24 18:22:35 364

原创 Activty启动到显示的过程[二]

从system_server,zygote,app相关进程的工作中深入学习Activity从启动到显示的过程

2023-03-06 19:50:14 538

原创 Android Looper简介

安卓Looper详解

2023-03-06 19:34:58 2048

原创 Android servicemanager进程启动过程

servicemanager服务端启动流程,defaultServiceManger()方法实现

2023-02-28 19:59:29 1231 1

原创 Android zygote进程启动过程

安卓zygote进程启动过程

2023-02-27 09:17:01 402

原创 Service能够创建界面(addView)吗?

Andorid service创建界面(addView)

2022-09-23 10:00:33 1090

原创 Activty启动到显示的过程[一]

从system_server,zygote,app相关进程的工作中深入学习Activity从启动到显示的过程

2022-07-06 13:56:05 706

原创 FBE中的Home界面FallbackHome

FallbackHomeFallbackHome继承Activity,是安卓系统启动后未解锁时的home界面。Settings程序AndroidManifest.xml中定义了FallbackHome的intent-filter,可以看到Action:“android.intent.category.HOME”。 <!-- Triggered when user-selected home app isn't encryption aware --> &lt

2022-03-09 10:53:50 3671

原创 adb install安装流程

安卓应用安装流程,动态链接库加载

2022-03-08 20:07:50 6201

原创 Android Watchdog分析

安卓watchdog原理分析

2021-12-23 15:52:46 2235

原创 安卓property service系统分析

本文基于安卓11,propertyService在init进程中启动。文章目录initPropertyInit**StartPropertyService**(&property_fd)Noticeinit进程相关代码位于/system/core/init/目录下,其中包括property_service.cpp。android::properties相关代码位于/system/core/property_service/目录。底层相关代码/bionic/libc/bionic/, /bio

2021-05-13 14:49:49 1722 2

原创 安卓恢复出厂设置过程详解

本文基于Android R。高通平台。设置中点击“恢复出厂设置”即可清楚用户数据。查看代码发现其只是发送了一个广播而已。 Intent intent = new Intent(Intent.ACTION_FACTORY_RESET); intent.setPackage("android"); intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);

2021-04-15 16:13:30 7627

原创 APK安装流程

总体来看是PackageInstaller应用程序通过binder和system_server进程间通信,安装的一系列操作都在system_server进程中处理。细致得看一遍流程,InstallInstalling在onCreate()方法中会通过ApplicationPackageManager初始化一个PackageInstaller实例对象。PackageInstaller[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jDGWMxpS-161709524239.

2021-03-30 17:10:53 388

原创 关闭selinux

cmdlinesystem/core/init/selinux.cppStatusFromCmdline 从cmdline获取selinux信息:EnforcingStatus StatusFromCmdline() { EnforcingStatus status = SELINUX_ENFORCING; ImportKernelCmdline([&](const std::string& key, const std::string& value) {

2021-03-30 17:06:12 273

原创 Activity进程启动过程

Activity启动Activity启动过程,下图应该是基于安装9或10,来自知乎张潮州。需要注意的是ActivityStarter.startActivityUnchecked()方法:计算启动的flags,首先计算flags是因为后面要根据flags选择启动的task,所以这一步是铺垫作用.这里读者可能会问为什么要计算,因为有些flags是冲突的,所以需要计算一下.对于找到task的过程其实还包含一些特殊的activity模式和标志的处理,以及对activity复用的逻辑.可以复用的情况包含

2021-03-30 17:03:09 409

原创 Android Runtime Resources Overlay

Android Runtime Resources Overlay高通平台代码systemUI默认带有刘海屏效果,需要去除刘海屏效果。了解到 Framework/res/中配置文件中可以对刘海屏幕效果定制适配,其中config_fillMainBuiltInDisplayCutout属性控制是否需要显示刘海效果,config_mainBuiltInDisplayCutout属性控制刘海形状效果。在 vendor/qcom/目录下搜索这两个属性,果然发现在vendor/qcom-proprietary/

2021-03-30 16:58:04 746

原创 mybatis(xml方式)多数据源异常: Invalid bound statement (not found)

mybatis配置多数据源请求后台时抛出异常:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):很显然异常是在说没找到对应的方法,或者说没有对应方法的sql。之前配置xml方式的mybatis都是在application.properties中添加一行mybatis....

2019-03-07 14:57:38 4018 4

转载 sql中的group by

转载于https://blog.csdn.net/hao1066821456/article/details/69556644先来看下表1,表名为test: 表1  执行如下SQL语句: 1 2 SELECT name FROM test GROUP BY name   你应该很容易知道运行的结果,没错,就是下表2: ...

2018-10-25 13:50:07 444

原创 关于spring的属性注入

1.spring 注解与xml两种方式属性注入的区别xml通过&lt;property&gt;标签或者p:attr两种方式注入属性值都需要目标类有setter方法,而注解@Autowired不用。这也说明当xml配置文件中有&lt;property&gt;标签或者p:attr这两种方式出现时,spring就会调用目标类的setter方法。 2.@Autowired注解标注在方法上。...

2018-10-13 14:47:37 142

原创 java动态代理:JDK与CGLib

1.JDK方式的动态代理必须是要面向接口编程的模式,要用到两个类:InvocationHandler和Proxy。需要注意的是静态方法Proxy.newProxyInstance()返回的是接口类,而不是实现类,如果强转为实现类就会抛Cast异常了,这也是JDK动态代理面向接口编程方式的结果之一吧。 2.cglib方式实现动态代理是采用底层的字节码技术,为一个类创建子类,不需要定义...

2018-09-26 10:25:26 118

原创 spring基于aspectj的AOP配置 aop:aspectj-autoproxy proxy-target-class="true"

精通Spring4.x--企业应用开发实战8.5.1@AfterReturning("@annotation()")切点函数详解 代码实现的目标是为NaugthyWaiter类的greetTo()方法实现后置增强,其中greetTo()方法被@NeedTest注解标注。增强类为TestAspect。增强类:@Aspect@Componentpublic class Te...

2018-09-21 18:15:53 15520 6

转载 关于mybatis中typeHandler的两个案例

转载于:点击打开链接在做开发时,我们经常会遇到这样一些问题,比如我有一个Java中的Date数据类型,我想将之存到数据库的时候存成一个1970年至今的毫秒数,怎么实现?再比如我有一个User类,User类中有一个属性叫做interest,这个属性用来描述用户的爱好,它的数据类型是一个List集合,那么我想在把这个List集合存入数据库的时候能够自动的变成{XXX,X...

2018-07-15 15:07:54 155

转载 MyBatis中Like语句使用总结

转载于点击打开链接 oracle数据库:SELECT*FROMuserWHEREname like CONCAT('%',#{name},'%')或 :SELECT*FROMuserWHEREname like '%'||#{name}||'%'SQLServer数据库: SELECT*FROMuserWHEREname like '%'+#{name}+'%'my...

2018-07-13 15:14:46 262

转载 Hibernate各种主键生成策略与配置详解

转载于:点击打开链接1、assigned主键由外部程序负责生成,在 save() 之前必须指定一个。Hibernate不负责维护主键生成。与Hibernate和底层数据库都无关,可以跨数据库。在存储对象前,必须要使用主键的setter方法给主键赋值,至于这个值怎么生成,完全由自己决定,这种方法应该尽量避免。&lt;id name="id" column="id"&gt;&lt;generator ...

2018-06-21 11:26:22 132

转载 hibernate.hbm2ddl.auto配置详解

转载于:点击打开链接在用SSH搭建一个OA项目的时候,发现搭建都OK,数据增删改查也都没有问题,但是在重启服务器时,之前操作的数据都没有了,查看数据库只有表结构没有数据,经过百般查找发现出在了hibernate.cfg.xml中的一个属性的配置上:&lt;property name="hbm2ddl.auto"&gt;create&lt;/property&gt;1...

2018-06-21 10:49:27 846

转载 The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone问题解决

转贼于:点击打开链接  点击打开链接今天在使用JDBC连接数据库时出了一点问题:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SP...

2018-06-20 23:08:40 2958

原创 List.remove()的两个重载方法

Java编程思想20章的一个例子,20.2编写注解处理器,在list&lt;Interger&gt; useCases中移除注解中出现了的id(int): public static void trackUseCases(List&lt;Integer&gt; useCases, Class&lt;?&gt; cl) { for(Method method : cl.getD...

2018-06-18 16:38:14 469

原创 自定义属性编辑器(java.beans.PropetyEditor)

Spring的大部分默认属性编辑器都直接扩展于java.beans.PropertyEditorSupport类,开发者也可以通过扩展PropertyEditorSupport实现自己的属性编辑器。(在IoC的流水线的第三步中,Bean工厂后处理器BeanFactoryPostProcessor对BeanDefinitionRegistry中的BeanDefinition进行扫描,通过Java反射...

2018-06-09 16:13:29 998 1

原创 Spring一个Bean的出生过程

(1)ResourceLoader从存储介质中加载Spring配置信息,并使用Resource表示这个配置文件资源。(2)BeanDefinitionReader读取Resource所指向的配置文件资源,然后解析配置文件。配置文件中的每个&lt;bean&gt;解析成一个BeanDefinition对象,并保存到BeanDefinitionRegistry中。(3)容器扫描BeanDefiniti...

2018-06-09 15:34:34 160

原创 BeanFactory和ApplicationContext两种方式配置Spring

一、BeanFactory1.Resource为了访问不同类型的资源,必须使用相应的Resource 实现类,这是比较麻烦的,是否可以在不显示使用Resource实现类的情况下,仅通过资源地址的特殊标识就可以访问相应的资源呢?...

2018-06-04 19:02:56 1416

转载 Telnet通过Smtp和Pop3进行邮件操作

转载于:点击打开链接我们直接进入正题,我们使用telnet通过smtp协议进行发送邮件,并用pop3协议进行查看邮件。通过本次实验,让我们更加理解邮箱的工作机制。*我这里使用163 smtp服务器。        1.打开windows的dos命令框(win+r,然后cmd回车),然后输入telnet  smtp.163.com  25   * 25是端口号   如若此步出错,说明你的window...

2018-04-27 13:58:50 867

转载 认识BufferedReader的readLine、ready,以及InputStream的available

转载于:点击打开链接最近,同学做实验的时候,在读取服务器端返回的时候,使用了BufferedReader类的readLine,他是这么写的,while(reader.ready()) {//执行读取操作,即readLine}这个方法很经常被用到, 但是返回的却都是空,这是什么原因呢,查看了一下帮助文档,以及上网查了查,总结如下:ready是查看流是否已经准备好被读,是一个非阻塞的方法,所以会立刻返...

2018-04-26 15:28:09 242

转载 学到很多----矩阵翻硬币 蓝桥杯

转载于:点击打开链接题目:     小明先把硬币摆成了一个 n 行 m 列的矩阵。  随后,小明对每一个硬币分别进行一次 Q 操作。  对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。  其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。  当小明对所有硬币都进行了一次 Q 操作后,他发现了一个奇迹——所有硬币均为正面朝上。  小明想知道最开...

2018-03-06 20:19:02 554

空空如也

空空如也

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

TA关注的人

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