自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (2)
  • 收藏
  • 关注

原创 【《深入理解Java虚拟机》读书笔记】--1.Java内存区域与内存溢出异常

1. Java程序运行时,内存是如何分配的。Java虚拟机在执行Java程序时,会把它所管理的内存划分为若干个区域,这些区域各有各的用处、创建销毁的时间。如图所示:Java虚拟机运行时数据区1.1 程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码行号指示器。在虚拟机的模拟概念里,字节码解释器工作室就是通过改变这个计数器的值来选取下一条需要执行的字节...

2020-10-19 13:50:29 120

原创 Android群英传之自定义View

创建自定义View的三种方法1.1 对现有控件进行拓展1.2 通过组合来实现新的控件1.3 重写View来实现全新的控件

2020-07-13 15:24:26 138

原创 Android屏幕适配

1.概念1.1 定义 什么叫做屏幕适配?Android的领域里,碎片化非常严重,屏幕尺寸不同的手机可能多达几千上万种,屏幕适配的作用,就是使同一个元素,在屏幕尺寸不同的手机上显示效果一样。1.2 几个重要的概念。1.2.1 屏幕尺寸所谓的屏幕尺寸,指的是屏幕对角线的长度。1.2.2 屏幕分辨率通常屏幕的分辨率使用类似于1920*1080这样表示,这个公式的意思就是:纵向1920个像素...

2020-06-17 17:27:48 171

原创 2020 下半年计划

学习享学课堂 (包括Flutter 、小程序、kotlin等新知识)具体计划:5月:搞清楚多线程:编写多线程系列博客,首先是Java中的多线程,然后是Android中的Handler、ThreadLocal等。...

2020-05-13 11:12:47 122

原创 Android中的图片优化大揭秘

图片,每个App都会有,而它,又是最容易引起OOM的。所以,有必要在Android开发中对图片做一些处理。在Android中,对图片的处理,可以从两个方面着手。1.减少图片在磁盘上所占空间的大小。2.减少图片在内存中的占用大小。1. 减少图片在磁盘上所占空间的大小。(这一块涉及到NDK的技术,如果不懂,没关系,网上现在有很多现成的图片压缩库可以使用,可以学完NDK再来看这...

2019-11-20 19:44:09 120

原创 App启动优化和绘制优化

App启动优化1.黑白屏的问题。现在大多数App都使用这种方式进行启动的优化,App刚启动时,会有黑白屏,此时,将AppTheme中的<item name ="android:windowBackground">@drawable/xxx</item>属性设置为一张背景图片。在视觉上让用户感觉App瞬间就启动了。在Application或者主Activ...

2019-11-12 20:24:44 119

原创 将博客搬至CSDN

新的博客地址:https://me.csdn.net/kimlllll

2019-11-12 14:03:40 91

原创 Android中的线程通信

准备知识为什么要学习ThreadLocal呢? 因为这个类是线程中存储数据的类,在Android处理消息的过程中,它其中存储了主线程的Looper,而Looper中又创建了MessageQueue。在App启动的过程中,主线程把Looper放入ThreadLocal中,在处理消息的过程中,子线程通过myLooper()方法获取到主线程中的Looper和MessageQueue,从而把主线程和子线...

2019-11-12 13:54:20 124

原创 Android中的线程通信

准备知识为什么要学习ThreadLocal呢? 因为这个类是线程中存储数据的类,在Android处理消息的过程中,它其中存储了主线程的Looper,而Looper中又创建了MessageQueue。在App启动的过程中,主线程把Looper放入ThreadLocal中,在处理消息的过程中,子线程通过myLooper()方法获取到主线程中的Looper和MessageQueue,从...

2019-10-31 22:30:23 132

原创 LayoutInflater源码分析

为什么要看这个类的源码呢 ?是因为在使用RecyclerView时,对Item进行getLayoutParams操作时,报了空指针异常。通过对源码的分析,才知道问题是出在了是否正确的使用了LayoutInflater。这是一个比较冷门的问题,也是一个比较容易被忽略的问题。但是我们每次将布局转化成View时,都会使用到这个类,所以想要好好分析一下,顺便记录下来,加深自己的理解和记忆,...

2019-10-22 19:51:38 130

原创 一些技能

1.进入Activity,软键盘不自动弹出在AndroidManifest.xml文件中,Activity节点添加属性:android:windowSoftInputMode="stateHidden|adjustPan"1、stateHidden:是隐藏软键盘的2、adjustPan:是保证控件不会因为输入法的弹出而发生形变的。使用自定义AlertDialog时,怎么让...

2019-07-09 14:52:29 94

原创 编码、加密、Hash、TCP/IP、HTTPS

密码学移位式加密现代密码学对称加密原理:使⽤用密钥和加密算法对数据进行转换,得到的无意义数据即为密⽂;使用密钥和解密算法对密⽂进行逆向转换,得到原数据。对称加密算法:DES、AES非对称加密原理:使⽤公钥对数据进行加密得到密文;使⽤用私钥对数据进⾏解密得到原数据。非对称加密公钥和私钥非对称加密对上图的解释:首...

2019-05-24 18:01:15 560

原创 HTTP的原理和工作机制

1.HTTP是什么?直观的:1.浏览器地址栏输入地址,打开网页。2.Android中发送网络请求,返回对应内容。理论上:HyperText Transfer Protocol 超文本传输协议。超文本:在电脑中显示的、含有可以指向其他文本的链接的文本。2.HTTP的工作方式。浏览器通过Http向服务器发送请求,服务器返回响应,浏览器通过其渲染引擎,也就是内核,将服务器返回的响...

2019-05-24 16:22:52 789

原创 Flutter学习笔记

一、先写一个小Demo1.Scaffold这个Widget,使用在MaterialApp中,包含了页面中常用的一些控件,如AppBar,NavigationBar等。如果要显示,在Scaffold添加相应的Key-Value值即可,如appBar:new AppBar(title:Text('AppBar'))2.设置App主题颜色,在MaterialApp中添加theme属...

2019-05-22 21:55:01 179

原创 org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugJavaWith...

这个异常出现之后,AndroidStudio并没有给出详细的打印结果。在网上学到一招打印详细异常信息的方法,这里总结下:首先:进入项目根目录或者直接使用AndroidStudio的Terminal使用gradle compileDebug --stacktrace 打印出详细的错误信息gradle compileDebug --stacktrace -info 打印出更详细的...

2019-05-09 16:23:39 2910

原创 数据结构和算法第一篇:时间复杂度和空间复杂度

终于开始写数据结构和算法的博客了,迈出了2019年的第一步,今年的计划,首先是写完数据结构和算法的博客,然后开始学习Android源码,另外,小程序,flutter,kotlin也开始要学起来,学习的中途,也会做自己的项目,是一个MVP+retrofit+rxjava+dagger2的项目,另外,公司的项目已经截止,接的私活开始做起来,买了扔物线的HencoderPlus,两个月学...

2019-03-22 20:30:27 288

原创 六、Android中的Animation与炫酷开场动画

本文目录一、属性动画和MaterialDesign动画属性动画和MaterialDesign动画相关的内容,已经在前面写过,具体查看https://www.jianshu.com/p/15d25638c001(属性动画)https://www.jianshu.com/p/a8f1f36c3fe0(MaterialDesign动画)二、Android自定义动画框架...

2018-12-21 10:42:36 189

原创 RecyclerView详解

本文目录RecyclerView是谷歌推出的代替ListView的列表控件。关于它的基本使用,它的封装,添加头脚布局等,比较简单就不再描述,这里主要是记录一些知识点。一 . RecyclerView间隔线RecyclerView并没有现成的间隔线,我们需要自己去绘制间隔线,创建一个类,继承RecyclerView.ItemDecoration,重写其中的两个方法,...

2018-11-19 18:04:28 352

原创 四、自定义View--难点解析

自定义View是一个Android工程师的必备技能,最近我打算写几个自定义View,却发现好多基础知识都忘得差不多了,所以,我打算再系统的学习一下,学东西有一个好老师非常重要,我看了很多博客,书,包括Hencoder,都觉得讲的不是很系统,直到看到了这位大神的博客,http://blog.csdn.net/xmxkf/article/details/51454685,从头开始,再学...

2018-10-25 18:01:15 206

原创 三、Android开发艺术探索之View的事件体系

虽然在前面写自定义View的时候有提过事件的传递机制,但是并没有全面系统的学习和记录,趁着写这篇博客的机会,把View的事件体系好好学习一遍,这篇博客里面不光有书中的内容,也有我自己的见解。本文目录一、View基础知识1. 什么是ViewView是Android中所有控件的基类,不管是类似于Button还是类似于RelativeLayout,它们的共同基类都是...

2018-10-15 18:05:32 106

原创 二、Android开发艺术探索之Activity启动模式全解析

1.Activity的LaunchMode为什么会有启动模式一说,当我们创建Activity时,系统会将它们一一放入任务栈中,任务栈是一种“后进先出”的栈结构,也就是最后放入的Activity会在最上面,如果多次启动同一个Activity,系统会反复创建多个实例,这样很多余,所以就有了启动模式这个概念。1.standard: 标准模式,系统默认的模式,每次启动一个Activit...

2018-10-11 16:29:04 90

原创 一、Android开发艺术探索之Activity的生命周期

1、Activity生命周期全面分析1.1 典型情况下的生命周期分析Activity生命周期.png正常情况下,Activity会经历如下生命周期:1.onCreate():表示Activity正在被创建,生命周期的第一个方法,我们可以做一些初始化的工作。2.onRestart():表示Activity正在重新启动。一般情况下,当前Activity从不可见重新...

2018-10-09 17:46:40 101

原创 JavaSE之容器

Collection接口,位于Java.util包中image.png接口setApi中的解释是:一个不包含重复元素的 collection,更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。Set中的元素没有顺序。接口ListApi中的解释是:有序的 collection(也称为序列)。...

2018-09-27 18:13:46 145

原创 JavaSE之常用类

这一篇主要是讲:1.字符串相关String、StringBuffer等2.基本数据类型包装类3.Math类4.File类5.枚举类String类java.lang.String类代表不可变的字符序列。“xxxxxx”为该类的一个对象。在Api中的解释如下: String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。字...

2018-09-26 18:00:29 88

原创 JavaSE之数组

一维数组:一条线一维数组二维数组:一个面二维数组三维数组:一个立方体,三维数组使用较少,这里不提及。一维数组数组的创建声明方式:如int a[]; 或者 int [] a;Java中使用new关键字创建数组对象,格式为int [] s = new int[5];那么创建数组时,内存中的情况如何呢?首先是基本类型的数组的创建:...

2018-09-21 14:07:56 80

原创 JavaSE之异常

异常:运行期出现的错误。1.Java异常是Java提供的用于处理程序中错误的一种机制,所谓错误是指在程序运行的过程中发生的一些异常事件(如栈溢出,数组下标越界,空指针)。设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果。2.Java程序的执行过程中出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将信...

2018-09-20 16:35:17 73

原创 Html

一、标签单标签注释标签注释标签换行标签换行标签水平线标签水平标签双标签文本标签,上下自动生成空白行。文本标签标题标签 h1-h6 h1在一个页面中只能出现一次。标题标签文本格式化标签文本格式化标签文本加粗标签,一般用strong文本加粗标签文本倾斜标签文本倾斜标签...

2018-09-11 18:08:16 102

原创 Java面向对象

一、类和对象对象:对象是用计算机语言对问题域中事物的描述,对象通过属性和方法来分别对应事物具有的静态属性和动态属性。类:类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一类对象所因具有的静态和动态属性。类可以看成一类对象的模版,对象可以看成该类的一个具体实例。如学生是类,学生中的小明即是对象。小明有什么属性呢,如:姓名,年龄。小明有什么动态属性呢?如:显示姓名,显示...

2018-09-01 00:04:21 165

原创 RxJava学习笔记

https://www.jianshu.com/p/bb58571cdb64 该系列文章学习笔记,转化成自己的话,以后看起来比较容易懂。引入:implementation 'io.reactivex.rxjava2:rxjava:2.0.1'implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'image.pn...

2018-08-16 17:43:03 82

原创 MVC和MVP使用指南

前面有写过MVP,但写的只是一个思路,好记性不如烂笔头,现在年纪大了是真的记性越来越差,以往在项目中用过的架构,比如MVC,个人认为我自己搭建的改良版MVC比MVP要好用,但MVP也是要记录下来的。后续还会添加MVVM,听说MVP+MVVM很好用,后面也打算研究一下。这篇博客只介绍使用,为了理清思路。首先介绍我自己一直以来使用的MVC模式架构。MVC不管是MVP还是MVC,...

2018-08-16 16:33:46 106

原创 Dagger2使用指北

Dagger2是正方形公司推出的一款依赖注入的框架,第二代由谷歌接手,在Android届可是大名鼎鼎的难学,我也是反复看了一遍又一遍才稍微有点头绪,本文就是Dagger2的使用指北,包括后面如何集成到项目中,也尽量写下来。1.引入 implementation 'com.google.dagger:dagger:2.16' annotationProcessor ...

2018-08-14 13:58:50 133

原创 Flutter之 学习过程中遇到的bug

学习语言就是这样,先写代码,再看原理,在写代码的过程中肯定会遇到问题,这里就用来记录这些问题。1 Run project时,遇到Waiting for another flutter command to release the startup lock1、打开flutter的安装目录/bin/cache/2、删除lockfile文件3、重启AndroidStudio2 ...

2018-07-26 19:54:49 317

原创 Material Design动画

Material Design中特有的动画效果,如水波纹,Activity转场动画等1.Touch FeedBack 水波纹水波纹效果是Android5.0自带的动画效果,但是要使用AppCompat的主题将需要设置水波纹的控件设置背景1.android:background="?attr/selectableItemBackgroundBorderless"无边框水波纹...

2018-07-17 17:10:18 160

原创 属性动画

属性动画是从android3.0出现的,通过不断的控制控件的属性变化达到动画的效果,如果要兼容更低的版本,可以使用Jack wharton的nineoldAndroid.jar属性动画是真实的改变控件的属性,不像之前的补间动画等,是假象(如之前的平移动画,平移之后原来的位置还是可以点击,平移之后的位置,反而不可以点击)。常用API:ObjectAnimator :对象动画执行...

2018-07-03 17:21:40 90

原创 ToolBar随ScrollView的滚动改变透明度

使用到监听回调,根据scrollY/(screen_height/3f)设置alpha,在ScrollView中设置属性:android:clipToPadding="false"//该控件的绘制范围是否在padding里面(false:绘制的时候范围会考虑padding,即往里面缩进)android:clipChildren="false"//子控件是否能超出padding的...

2018-06-25 21:49:02 181

原创 日计划

1.高级UI 2 华为手机市场 3 Kotlin 4 flutter 5 Java6.23 Material Design 7-9 ok6.24 休息6.25 Material Design 10-14 10-11ok 白天工作较忙 没有时间学习6.26 Material Design 12-14 ok6.27 Material Design 15-18 15...

2018-06-22 16:32:00 113

原创 自定义View之HenCoder学习笔记

本文是学习公众号 hencoder 中的自定义View部分的学习笔记。1-1 onDraw()和Paint详解具体参考http://hencoder.com/ui-1-1/ 写的非常详细练习:画弧形,扇形,心形,直方图,饼图1-1-1.弧形 扇形 使用 canvas.drawArc()drawArc() 是使用一个椭圆来描述弧形的。left, top, right, bo...

2018-06-21 16:35:13 260

原创 2018年计划

发现自己想学的东西非常多且杂乱,所以务必要制定一个计划了。2018已经度过了半年了,剩下还有6个月时间,我打算学习的东西有以下这些。1.精通安卓2.学会java后端3.python我现在写app是毫无压力了,但是说到精通,确实还差的很远。所以我的计划1 分成以下几个部分。1.学习优秀源码 app页面滑动冲突的部分 并把项目中的页面改造 4天 6.12-6.14 、6....

2018-06-11 16:25:34 96

原创 Material Design

关于Material Design 的各种详细的介绍,极客学院的wiki写的非常清楚了:http://wiki.jikexueyuan.com/project/material-design/那么我们现在就开始撸代码本文目录1.控制项目全局样式1.1 无论是使用AS还是ADT,都要引入appcompat-v7,AS使用下面这一句代码引入,解决Android碎片...

2018-05-31 13:06:29 266

原创 GooglePlay开发笔记

页签使用PagerTab。使用PagerTab时,setOnPageChangeListener需要绑定在pageTab上。否则会出现滑动异常。(why?)2.在ViewPager中添加Fragment,使用FragmentPagerAdapter。getSupportFragmentManager()只有在FragmentActivity中才可调用,AppCompatAct...

2018-05-27 14:04:53 156

HiJson 64位

Json分析工具,HiJson 64位版

2017-08-25

Hijson32位

json解析工具 32位

2017-08-25

空空如也

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

TA关注的人

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