自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (3)
  • 收藏
  • 关注

原创 invalidate后onDraw方法不执行问题解决办法

场景:调用自定义ViewGroup(可能继承的是ViewGroup/LinearLayout等等)的invalidate时,onDraw方法不执行原因:考虑一下是否没有设置背景,如果没有设置背景,那么ViewGroup初始化的时候调用setWillNotDraw(false);方法...

2021-02-25 16:15:37 1471

原创 加密、编码、Hash

加密、编码、Hash加密对称加密非对称加密编码Hash加密数据加密技术现在分为两类,对称加密与非对称加密;对称加密:一个密钥、两种算法(一个加密,一个解密)非对称加密:一个公钥、一个私钥、一种算法对称加密对称加密就是使用密钥与加密算法对数据进行转换,得到一些看上去无意义的密文;使用密钥和解密算法对密文进行逆向转换,得到原文。经典算法DES:采用的是56位的密钥,在以前还是挺...

2020-04-10 18:58:49 355

原创 HTTP-基础篇

HTTP-基础篇HTTP是什么?请求与响应格式HTTP的工作方式HTTP常见的请求方法与状态码Header与Body常见的一些HeaderRESTfulHTTP是什么?HTTP是超文本传输协议,记住,只是一个协议超文本是什么呢?超文本就是是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本那么我们通俗一点来说呢,就是网页链接、超链接、包含了链接的文本,还有就是htmlh...

2020-04-08 18:12:38 350 1

原创 JVM运行时内存区域划分

JVM运行内存的三个区域JVM运行时内存说的就是JVM的堆,他是垃圾收集器进行垃圾回收的最主要的内存区域,我们每次创建的对象和产生的数据都被存储在堆中Java堆从GC的角度去看,可以分为三个区域,分为是新生代,老年代,永久代其中新生代占1/3的堆空间,老年代占2/3的堆空间,永久代占得很少,就不进行划分了,他也占了,但是很少很少,新生代占的1/3又分为Eden区(占比8/10),Serviv...

2020-03-17 23:06:55 361

原创 EventBus3.0源码分析

EventBus3.0源码分析基本使用方式:1、build中依赖,直接使用implementation 'org.greenrobot:eventbus:3.0.0'2、在需要接收事件的Fragment或者Activity或者View中注册,并且加入订阅方法,在onDestroy中进行解除注册①EventBus.getDefault().register(this);②@Subsc...

2019-12-26 20:20:28 200

原创 组件化中LibraryModule无法引用aar文件

 LibraryModule中直接引用aar是无法找到的,需要主module中加入这个去引用idealTest为LibraryModule名称 repositories { flatDir { dirs '../idealTest/libs', 'libs' } }参考:https://blog.csdn.net/q...

2019-12-03 14:27:41 520

原创 CLEARTEXT communication to to 52.76.xx.xxx not permitted by network security policy

 Android9.0之后使用http请求时会报错CLEARTEXT communication to to 52.76.xx.xxx not permitted by network security policy Android9.0及以后,需要使用HTTPS请求,但是后端没有支持https的时候,我们有两种办法解决将targetSdkVersion 设置为28以下在res中建立...

2019-11-12 10:03:46 158

原创 自定义通知栏的实现

 实现一个自定义通知栏,我们分成两个部分来讲,一个是通知,一个是自定义的通知栏界面普通通知栏 首先我们先实现一个通知,一些参数的说明已经写了注释了,其中NotificationChannel 的设置会将Notification .Builder()的设置给覆盖掉,当我们的版本不是8.0时请自行实现震动铃声之类的这里的setOngoing属性要注意一下,用于后台服务,不想让用户清除掉的,就设...

2019-10-11 11:45:22 771 1

原创 PendingIntent

 PendingIntent是一个等待意图,表示某个时刻要执行一个Intent,一般是用来和RemoteViews配合使用的。几个主要方法getActivity():当意图发生时和startActivity()效果一样。getService():当意图发生时和startService()效果一样。getBroadcast():当意图发生时和sendBroadcast()效果一样。与I...

2019-10-10 15:13:10 172

原创 Android 10 打开APP时提示 An error occurred,please contact administrator.Exiting...

Android10手机打开APP时直接崩溃,提示“An error occurred,please contact administrator.Exiting…”由于没有测试机,这个问题经过大佬的指点,我用了云测来调试查出是因为我们的合作商可能使用了Hook,导致空指针,直接崩溃了切记,打开APP就崩溃的问题,第一步先检测自己的Application是否存在问题,第二步再考虑是否集成了某些产商...

2019-10-08 16:10:51 4268

原创 ARouter的简单使用

ARouter的简单使用依赖implementation 'com.alibaba:arouter-api:1.3.1'annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'android-defaultConfig节点下添加,用到Arouter的都要添加,组件也要添加 javaCompileOptions { ...

2019-09-15 16:07:01 270

原创 Android断点续传

 最近看了一些大佬去面试的时候都提到了断点续传,所以自己也写一个记录下来,断点续传的原理就是通过数据库实时的去保存当前下载的长度,然后下次再次下载的时候通过setRequestProperty告诉服务端我需要这个文件从什么地方开始下载,我们再通过RandomAccessFile去设置开始写入的位置效果首先上效果图与日志,GIF只截取了5秒步骤首先我们建立一个实体类,用于保存文件的下载...

2019-09-15 12:34:22 3825 1

原创 Android组件化

我理解的组件化、模块化、传统模式传统模式所有的功能点都放在同一个工程下传统模式的缺点:现在做了多个点,每个点的功能模块都不一样,比如说A地区需要视频会议,B地区需要第三方加密,这样就造成了我的所有的功能模块都放在同一个工程下,就算我打包的时候去屏蔽他们,也需要屏蔽多个地方的代码,效率低下,而且还容易造成遗漏,我不屏蔽的话,编译的时候效率极其低下,难受!而且不适合团队合作,业务耦合严重,容...

2019-09-13 23:25:02 196

原创 Android性能优化之包体积优化

 Android中的包体积还是比较让人烦心的, 用户看见这么大的APK或者每次更新的时候都要花费巨大的流量去更新就想把你的APK给卸载掉,这里就记录下APK体积优化的方案分析工具首先我们可以使用Android Studio的Analyze APK去进行检测,我们可以通过Analyze APK看到APK到底哪些地方占用了空间。用一套资源文件正常来说去做一些适配的时候让UI剪切不同大小的图...

2019-09-08 09:54:16 1113

原创 Android冷启动优化

 应用启动分为三种状态,每种状态都会影响到应用程序对用户的可见时间,分别是温启动、热启动、冷启动(谷歌在优化启动的时候也是主要针对于冷启动)冷启动 冷启动是指应用程序(此处的应用程序是指我们的APP,后面一样)从头开始,系统的进程在此之前没有创建应用程序的进程,冷启动发生的时机就是首次启动APP的时间,是一个从无到有的状态冷启动开始时,系统有三个任务:加载并启动APP启动后立即显示应用...

2019-09-07 12:04:14 188

原创 Android性能优化之网络优化

 一个app能否给用户一个好的体验,网络这一块也是很重要的,如果一个点击事件请求四五个接口,而且还是串型的,或者在网络不好的情况下,各种出问题,在使用APP的时候非常耗费流量,那这给用户的体验感多差呀!所以在Android中网络优化是必不可少的。这里我们分开两部分来记录,一部分是单纯的前端优化,不涉及到后端的,还有一部分是涉及到后端,需要后端也做出修改的一些常用的网络检测工具Network M...

2019-09-06 04:16:11 154

原创 Android新项目搭建记录(纯感想,非技术)

前言背景 最近领导和我们说要做一个平台,和我们口嗨了一下大概的蓝图,嗯!没错,是的,很美好的蓝图,如果不是听到后面没有需求我差点就信了这个蓝图了。反正经过三天的沟通,我们确定了我们要做一个平台(其实这个平台很久前领导就想做了,也提了好几次),然后就分配下工作了,产品经理去定义需求,前端后端开始搭框架(并且要给出一份设计文档),先不考虑需求。好了前景介绍完毕,我来说一下我是如何在没有需求的时候去搭...

2019-09-03 23:41:31 182

原创 Android IntentService解析

  IntentService是一个异步服务,一般来说用在类似后台下载更新之类的功能上使用方法public class SigningService extends IntentService { /** * Creates an IntentService. Invoked by your subclass's constructor. * * @pa...

2019-08-29 11:45:13 160

原创 重拾Android自定义View

 Android做了这么久了,自定义view平常也用的不是特别多,可能自己做的项目太low了吧,有的知识放在一边不用它,久了,也就容易生疏了,这里记录一篇博客,记录记录一下,一个View的展示分为三个主要的步骤:onMeasure()、onLayout()、onDraw(),分别是测量,布局,绘制,按照步骤依次说一下这三个方法onMeasure() 我们在xml布局中其实也能设置布局的宽高,直...

2019-08-22 10:15:06 131

原创 Android手写签批功能实现(适配Android6.0及以上)

 Android手写签批功能的实现在于三个点,mupdf,偏移量的计算,droidText0.5.jar实际步骤:使用muPdf将PDF加载出来弹出透明的popwindow,popWindow使用画板(一般签批我们都会用有笔锋的钢笔或者毛笔)将签批好的图片生成Bitmap将该Bitmap通过droidText生成一份新的PDF(这一步放到异步中进行,因为耗时)mupdf 我们使用...

2019-08-20 14:55:47 1553 13

原创 记录View撑不开界面的问题

 这里是纯记录一个问题,我们在画界面的时候肯定遇到过listview嵌套listview(这里不管你是listview还是recycleview,只要是滚动的)时子listview的item展示不全,撑不开界面,可能只会展示一部分。 1、这个我们可以使用重新测量子listview的方法,这种方法不一定有用 2、将父级的match_parent改成wrap_content(我遇到的是高度撑不开,...

2019-08-09 17:29:39 509

原创 使用Flutter_Boost进行混合开发-Android

使用Flutter_Boost进行混合开发-Android创建Flutter项目,用 flutter create -t module fluttr_test 命令来创建,flutter_test为我们的Flutter的工程名用Android studio打开刚才创建的功能,我们刚创建好的时候不会有.android与.ios这两个目录的,用Android studio打开构建一下就出来了(...

2019-07-16 23:09:23 1602

原创 Flutter动画的简单使用

Flutter动画的简单使用Flutter的动画我们要记住三个点,AnimationController、 Thween、Forward(),一个简单的动画就是由这三个组成的AnimationController:AnimationController用于控制动画,开始、反向播放、暂停等等都是由AnimationController来控制的,Controller会在每一帧都生成出一个新的值A...

2019-07-16 23:08:20 455

原创 原始指针事件监听-Pointer、手势识别-GestureDetector

原始指针事件监听-Pointer、手势识别-GestureDetector原始指针事件监听-Pointer在Android中,我们的事件可以拆分为三点,down、move、up,然后由这三点来决定是否移动,是否长按,是否双击等等功能,在flutter中也是一样Listener({ Key key, this.onPointerDown, this.onPointerMove,...

2019-07-16 23:07:32 818

原创 粘性滑动Sliver、widget矩阵变化、导航返回拦截

粘性滑动Sliver、widget矩阵变化、导航返回拦截CustomScrollViewCuStomScrollView是可以使用sliver来自定义滑动模型的wideget,比如说一个页面中,有一个list View和一个GridView,那么我们如何让他们的滑动连接到一起呢?如果不连接到一起,那么他们肯定是自己滑动自己的,没有一个统一的滑动,CustomScrollView的作用就是将这...

2019-07-16 23:06:51 297

原创 滑动布局-ScrollView、SingleChildScrollView 、ListView 、GridView

滑动布局-ScrollView、SingleChildScrollView 、ListView 、GridView可滑动的Widget-ScrollView我在用Column进行布局的时候,由于子节点过多,导致出现了OverFlow的提示,这个就是告诉我们内容超出范围了,这个在Android里来做就不会给你提示了,他会直接截取掉,不显示,为了解决这个错误我第一时间想到的就是像Android一...

2019-07-16 23:06:06 2707

原创 流式布局-Wrap、Flow&&层叠布局-Stack

流式布局-Wrap、Flow&&层叠布局-Stack流式布局-Wrap、FlowWrap的使用和线性布局很像,包括一些参数基本上和线性布局的一样,所以这里我们记录一下Wrap的一些比较特别的参数spacing :主轴方向子节点的间距,就是子节点与子节点之间的留白runSpacing 纵轴方向的间距(主轴与纵轴的概念在线性布局这提了)runAlignment :纵轴方向的对齐方...

2019-07-16 23:05:25 602

原创 线性布局-Row、Column&权重布局-Expanded

线性布局-Row、Column&权重布局-Expanded线性布局-Row、Column主轴、纵轴概念在线性布局中有主轴和纵轴之分,如果当前是水平布局,那么主轴就是指水平方向,纵轴就是指垂直方向, 如果当前是垂直布局,那么主轴就是指垂直方向,纵轴就是指水平方向mainAxisAlignment :主轴对齐,设置child在Row中的对齐位置,用MainAxisAlignm...

2019-07-16 23:02:42 1343

原创 Flutter入门-布局Container、Padding、Align、Center

Flutter入门-布局Container、Padding、Align、CenterContainerContainer的尺寸大小Container自身尺寸变化的两种情况,以下两种情况皆不考虑父节点设置constraints和Container自身设置的width、height:第一种是Container没有子节点的情况下,Container会将自己变得极小,这里我们只要考虑到存在这...

2019-07-16 23:01:27 10173

原创 Android性能优化之内存优化

Android性能优化之内存优化内存泄漏出现的场景及解决办法Bitmap优化内存泄漏出现的场景及解决办法 内存泄漏是指我们在向程序申请了内存存储对象后,当该对象不需要用了的时候又不把内存释放还给程序,从而引发内存溢出(out of memory),下面例举一下可能造成内存泄漏的一些场景。静态集合 我们的静态集合中存储了对象,因为这些对象一直被集合持有,所以对象无法被回收,特别是集合中对象...

2019-04-10 11:08:50 96

原创 Android性能优化之布局优化

Android性能优化之布局优化前言includemergeViewStub其他的优化方式)前言 Android中布局优化能让我们的界面绘制时间减少,用户感知到的卡顿时间也短,体验感自然而然也就上去了,Android中的布局优化可以从多个方面来入手,include,merge,ViewStub等等一些方面。include 我们平常在画布局的时候经常碰到一些重复的共性布局,比如说标题栏,...

2019-04-07 22:27:43 121

原创 Java的四种引用方式

Java的四种引用方式强引用弱引用软引用虚引用 Java从Jdk1.2版本开始将对象分为了四种状态,目的是为了更好的灵活管理对象的生命周期,分别是强引用,弱引用,软引用,虚引用。强引用 当对象与强引用关联时,JVM宁愿抛出outofMemory也不会将该对象回收。以下示例即为强引用String s="test"弱引用 当对象与弱引用关联时,Jvm进行垃圾回收的时候,会将该对象回收,不...

2019-03-31 20:33:23 116

原创 Android事件分发机制

Android事件分发机制前言事件分发示意图解析点击事件到ActivityActivity到PhoneWindow再到DecorViewDecorView到ViewGroup再到View总结前言 Android的事件分发机制看了很多文章,背都背出来了,但是一直没有自己去看源码追一遍,现在写下这篇博客记录下从源码分析Android的事件分发机制,如果有哪个地方说的不对的,望大家指出!谢谢!事件...

2019-03-26 13:09:35 220

原创 ImageView详解

ImageView详解前言基本使用方法属性属性详解子类绘制原理关于ImageView可能会遇到的问题前言ImageView在官方的介绍上说是显示任意图像,如图标。ImageView类可以从各种来源(如资源或内容提供程序)加载图像,负责从图像中计算其度量,以便可以在任何布局管理器中使用,并提供各种显示选项,如缩放和着色。基本使用方法xmlxml中声明ImageView控件,然后在acti...

2019-03-25 13:48:11 8304

原创 Rxjava2生命周期绑定

Rxjava2生命周期绑定使用步骤依赖RxLifecycle继承绑定Activity绑定原理bindUntilEvent绑定原理bindToLifecycle绑定原理    我们在使用rxjava请求网络的时候,会出现一种情况,当我们订阅后,activity销毁了,这个时候我们的activity就无法被收回,从而引发造成内存泄漏,对此我们可以使用RxLifecycle来管理activity的生命...

2019-03-11 16:16:31 3189

原创 Handler解析记录

Handler前言Handler的用法Handler的消息传递顺序源码追踪Handler消息传递的三个步骤主线程中的Handler与异步线程中的HandlerHandler引起的内存泄漏总结前言Handler是Android一个很基础的东西了,面试的时候经常问,而且都是问内部原理,是如何传递消息的,现在在此记录一下Handler的消息传递机制Handler的用法Handler的用法很简单,...

2019-02-26 15:22:37 202

原创 Retrofit2.0使用以及注解

Retrofit2.0前言Retrofit2.0注解请求方法参数类标记类Retrofit2.0基本使用Retrofit2.0结合Rxjava2使用前言Retrofit在我的理解是针对于okhttp的二次封装,它支持反序列化来解析数据,支持Rxjava,具有强大的可扩展性Retrofit2.0注解看Retrofit的源码发现共有有24个注解类,其中8个为请求方法类,13个参数类,3个标记类...

2019-02-24 13:51:54 468

原创 Android四大组件

Android四大组件用了很多遍了,但还是有很多细节容易忘记,所以就写下来吧!ActivityActivity的生命周期在这里插入图片描述Activity的简单生命周期流程为onCreate();→onStart();【注:此时Activity处于不可见状态】→onResume();【注:此时Activity处于运行状态】→onPaus...

2019-02-20 10:11:00 92

原创 简单的mvp+retrofit+rxjava示例

最近喜欢上了mvp,所以也学习了网站上别人的mvp自己写了一个简易的mvp,我不太确定我这是不是标准的mvp,但我感觉分离的挺开的。 这里的mvp我是结合了retrofit+rxjava,全是简易的,因为都是刚开始学习,希望大家多多指点。 其实在我看来mvp就是将v层和m层完全分离开来,通过p层去控制v层和m层(也就是在p层中调用v层或m层的方法)下面我直接将代码贴出来吧,很容易理解的。 v层

2017-11-12 17:44:05 283

原创 Android-NDK编译.so文件

记录下ndk如何编译.so文件 按部就班的说下:  首先下载NDK,这个我是直接在Android studio里面下载的,也没去官网下载,下载好了,就是配置环境变量了,因为我是从Android studio里面下载的,所以就直接在path中配置D:android_sdk/ndk-bundle这个路径了,配好了后我们可以用ndk-build去cmd命令台检测下看下是否配置成功  接下来就是在An

2017-11-12 17:35:36 656

jquery-3.2.1

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库。

2017-10-09

空空如也

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

TA关注的人

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