自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前端安全相关

前端安全xss跨站脚本攻击原理攻击者往web页面里面插入恶意可执行网页脚本代码,当用户访问网站时时,嵌在web里面的恶意脚本被执行,从而达到获取用户信息或者其他目的的行为定义通过存在安全漏洞的web网站注册用户的浏览器内运行非法的html标签或者是js代码进行的一种攻击类型存储型xss特点持久型xss攻击,恶意代码存储在服务端,来源于后端从数据库中读取出的数据攻击流程1.攻击者提交恶意代码到网站的服务器数据库中2.用户访问网站,服务器将恶意代码取出,拼接到html中,返回给浏览器3

2021-12-05 19:18:23 3605

原创 Zygote的作用

作用:启动SystemServer;孵化应用进程Zygote的启动流程分为两部分:1.Zygote进程是怎么启动的?服务名称+可执行路径+参数2.进程启动之后做了什么事?

2021-12-05 16:05:07 258

原创 java基础

java的String可以有多长?字面量String text = “aaaa…aa”存储在栈中堆java匿名内部类有什么限制?java的方法分派取决于调用者在运行时的实际类型。即new SubClass(),调用的必然也是SubClass的getName()java泛型的实现机制...

2021-12-05 11:44:58 313

原创 线程的消息屏障

消息分类参考文章 Handler之消息屏障消息可以分为三种普通消息(同步)normal屏障消息(同步)barrier异步消息async我们通常使用的都是普通消息,而屏障消息就是在消息队列中插入一个屏障,在屏障之后的所有普通消息都会被挡着,不能被处理。不过异步消息却例外,屏障不会挡住异步消息,因此可以这样认为:屏障消息就是为了确保异步消息的优先级,设置了屏障后,只能处理其后的异步消息,同步消息会被挡住,除非撤销屏障。我们如何在消息队列中插入一个消息屏障?postSyncBarrier

2021-12-04 16:11:39 317

原创 应用的主线程进入loop循环,为什么不会发生ANR?

ANR的触发原理ANR:App not respondingmUiHandler是systemService的handler,但是不在主线程,而是在子线程(刷新ui不一定需要在主线程)触发ANR的场景:Service timeoutBroadcastQueue timeoutContentProvider timeoutInputDispatching timeout(输入事件无响应)应用的大致启动流程应用主线程的消息循环:哪些线程可能会给主线程发送消息

2021-12-04 14:58:14 1836

原创 IdleHandler原理

IdleHandler是什么?有什么用?怎么用?是什么?是个回调接口。当发现这个线程阻塞等待消息的时候就会触发这个回调queueIdle()返回值是boolean。当messageQueue里面的所有消息都处理完了或者等待下一条消息的时候(触发时机还没到)会触发。当return true,表示IdelHandler一直有效,false表示这个IdelHandler要被移除。怎么用?当return true,表示IdelHandler一直有效,false表示这个IdelHandler要被移

2021-12-04 12:14:51 355

原创 Handler消息延迟机制是怎么实现的?

消息延时是怎么实现的?消息队列按消息触发时间由近及远进行排序设置epoll-wait的超时间,使其在特定的时间唤醒(计算下一条消息的触发时间与当前时间的时间差作为epoll-wait的超时时间) sendMessageDelayed(Message msg,long delayMillis){ if(delayMillis < 0){ delayMillis = 0; } //当前时间+延时时间 = 目标触发时间 return sendMessageAtTime(msg,Sys

2021-12-03 15:30:01 1986

原创 Android线程间的消息传递机制

android的线程间的通信可以理解成三个部分:消息的发送、消息的循环、消息的分发处理消息是怎么发送的?核心是理解sendMessage()里面做了哪些操作handler.sendMessage()handler.sendMessageDelayed()handler.sendMessageAtTime()需要注意的是,sendMessageAtTime不是指要在这个时间插入这条消息,而是在这个时间将该消息分发出去handler.enqueueMessage()message.

2021-12-03 12:23:29 1651

原创 关于Handler的一些思考

这里写自定义目录标题关于Handler的一些思考1.在子线程中可以创建handler吗?2.主线程的Looper与主线程的Looper有什么区别3.Looper和MessageQueue有什么关系4.MessageQueue是如何创建的?关于Handler的一些思考1.在子线程中可以创建handler吗?答案是可以的//错误示例 new Thread(){ @Override public void run() { n

2021-12-02 22:50:02 438

原创 常用通讯协议简述

常用通讯协议简述UDP概述优点缺点适用场景TCP优点缺点适用场景MQTT概述优点缺点适用场景UDP概述UDP是一种高效但不可靠的协议。UDP是一种 面向报文、非连接的协议。具体表现为发送数据前无需与服务端建立连接,数据发送完毕后亦无需断开连接(没有连接可断开),如此一来,减少了建立和断开连接时的开销,无需像TCP一样建立连接需要3次握手,断开连接需要4次握手。UDP 不存在拥塞机制。即源主机不会因为网络拥塞而降低发送速率。UDP 不能保证交付。这个特性容易导致丢包、乱序的情况。优点高效

2020-08-04 10:56:52 461

原创 android 解决部分手机Android系统8.0以上在锁屏状态收到消息无法在锁屏页点亮并显示消息的问题

背景介绍最近在做IM相关的项目,产品需求是用户在线,但用户手机是息屏状态或在解锁页面的情况下收到新的消息,需要在自动点亮屏幕并显示通知样式的内容,点击消息跳转到具体的聊天界面,就像QQ或微信锁屏状态下的消息处理。解决思路(只贴重要代码)1.首先需要在锁屏页显示具体的消息内容,需要一个activity,此activity需要亮屏 @Override protected void onC...

2019-04-24 14:26:45 4758 3

原创 Android studio创建aidl文件

Android studio创建aidl文件1.找到工程的java文件的最外层包 2.创建Person的java类并实现Parcelable序列化 2.创建IPersonManager.aidl,Person.aidl文件 注:AIDL文件默认是要以大写字母I开头的名称,不能直接创建Person.aidl文件,先随便创建IPerson.aidl,创建好了之后可以通过Refa...

2018-08-23 15:08:45 485

原创 RN项目报错: Could not resolve all files for configuration ':classpath'.

RN项目报错: Could not resolve all files for configuration ‘:classpath’.报错信息如下图: 解决办法: 在android目录下的build.gradle中给jcenter仓库指定url,具体用法如下 可直接复制下列代码:buildscript { repositories { jcenter(...

2018-08-22 15:35:26 1956 2

原创 Android IPC 通信机制

1.1IPC是Inter Process Communicationde的缩写,意为跨进程通信或进程间通信.进程和线程的区别与关系:进程:一般是指一个执行单元,在pc和移动设备上指一个程序或一个应用.线程:是cpu调度的最小单元,同时线程是有限的系统资源.一个进程可以包含多个线程,因此进程和线程之间是包含和被包含之间的关系.2.1如何开启多进程?在Android中多进程...

2018-08-21 16:09:25 257

原创 Activity的启动模式详解

1.1Activity为什么要有启动模式?&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;am

2018-08-18 14:37:04 299

原创 Activity生命周期分析

1.1经典生命周期分析正常情况下Activity的生命周期: 1)onCreate:表示Activity正在被创建,这是Activity生命周期的第一个方法,通常用于做初始化的一些工作,如setContentView加载布局xml文件,初始化Activity需要的数据等;2)onRestart:表示Activity正在重新启动.为什么说是”重新”启动呢?.如果Acitivity是第一次创...

2018-08-17 17:54:59 498

空空如也

空空如也

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

TA关注的人

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