自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

有图有真相

一言不合就上源码

  • 博客(204)
  • 资源 (16)
  • 论坛 (1)
  • 收藏
  • 关注

原创 java多线程相关问题汇总

1、线程和进程的关系根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线...

2020-06-20 11:03:22 2404

原创 Android卡顿检测及优化
原力计划

前言之前在项目中做过一些Android卡顿以及性能优化的工作,但是一直没时间总结,趁着这段时间把这部分总结一下。卡顿在应用开发中如果留意到log的话有时候可能会发下下面的log信息:I/Choreographer(1200): Skipped 60 frames! The application may be doing too much work on its main thread.在大部分Android平台的设备上,Android系统是16ms刷新一次,也就是一秒钟60帧。要达到这种刷新

2020-06-19 15:47:44 1236

原创 tinker热更新原理

什么是 Tinker?Tinker 是一个开源项目(Github链接),它是微信官方的 Android 热补丁解决方案,它支持动态下发代码、So 库以及资源,让应用能够在不需要重新安装的情况下实现更新。热更新方案比较当前市面的热补丁方案有很多,其中比较出名的有阿里的 AndFix、美团的 Robust 以及 QZone 的超级补丁方案。1、AndFix作为native解决方案,首先面临的是稳定性与兼容性问题,更重要的是它无法实现类替换,它是需要大量额外的开发成本的;2、Robust兼容性与成功率

2020-06-04 16:57:24 349

原创 三幅图弄懂EventBus核心原理
原力计划

前言好多分析EventBus的文章,喜欢上来就贴源码,我看了好多次总是迷迷糊糊的,这次花时间彻底整理一下EventBus,发现EventBus核心其实就是三幅图,这三幅图涉及的是三个HashMap表,弄懂这三幅图那么EventBus就懂了。第一幅图subscriptionsByEventType1、第一幅图typesBySubscriber先看一段在activity中注册和反注册Even...

2020-04-16 16:34:50 1179

原创 图解Android中的Binder机制
原力计划

前言Binder做为Android中核心机制,对于理解Android系统是必不可少的,关于binder的文章也有很多,但是每次看总感觉看的不是很懂,到底什么才是binder机制?为什么要使用binder机制?binder机制又是怎样运行的呢?这些问题只是了解binder机制是不够的,需要从Android的整体系统出发来分析,在我找了很多资料后,真正的弄懂了binder机制,相信看完这篇文章大家也...

2020-04-05 23:17:35 463

原创 Android中Handler问题汇总
原力计划

前言handler机制几乎是Android面试时必问的问题,虽然看过很多次handler源码,但是有些面试官问的问题却不一定能够回答出来,趁着机会总结一下面试中所覆盖的handler知识点。1、讲讲 Handler 的底层实现原理?要理解handler的实现原理,其实最重要的是理解Looper的实现原理,Looper才是实现handler机制的核心。任何一个handler在使用sendMes...

2020-04-04 16:56:20 810

原创 Android编译器Dalvik vs ART

DalvikDalvik是Just In Time(JIT)编译器,也就是说及时编译器。在Dalvik编译器中,只有当前需要执行的代码才会变编译,剩下的代码在后面要使用的时候才会被编译。Dalvik仅仅只是编译运行时需要的部分代码,不会一次把所有的代码进行编译,所以会使用很少的手机内存空间。JIT框架JIT编译JIT工作流程ARTART 又被称为Ahead Of Time(AO...

2020-04-03 21:05:43 257

原创 减少apk大小

减少资源数目移除无用资源1、使用lint工具进行检测res/layout/preferences.xml: Warning: The resource R.layout.preferences appears to be unused [UnusedResources]注意lint不会检测asset文件夹中的文件2、使用shrinkResources如果如果在 app的buil...

2019-12-18 10:17:42 584

原创 android高级进阶之12条代码优化以及性能优化

从去年七月份(2018/7/13)入职到现在(2019/8/15)已经一年多了,这一年从一个菜鸟开始慢慢学习到了很多东西,记录一下在开发过程中遇到的代码优化和性能优化经验,方便让其他人少走弯路。性能优化1、装箱带来的内存消耗Boolean isShow =new Boolean(true) ; 上面的代码会带来如下问题:上面的意思总结一下就是,采用装箱在java 5及以上是没必要的...

2019-08-17 18:23:38 549 2

原创 Android屏幕适配总结

前言好久之前就想写一篇跟屏幕适配相关的文章一直没有动笔,这次下决心抽周末的时间结合我在实际项目中所遇到的问题写一篇博客。Android中各种尺寸单位的区别Android开发中会遇到各种单位:pxPixels - corresponds to actual pixels on the screen.inInches - based on the physical size of...

2019-08-12 12:43:10 344 1

原创 Android 高级进阶之overdraw分析及解决

前言最近在看Android中性能优化的,其中提到了LinearLayout会引起overdraw,但是并没有具体的分析原因,我自己查找了一些资料从LinearLayout的绘制等方面来说明为什么使用LinearLayout会引起overdraw和哪些情况下使用LinearLayout会引起overdraw。希望大家看完之后对view的绘制和测量过程更加了解。什么是overdrawAndroi...

2019-08-06 21:23:50 858

原创 Android松耦合监听前后台切换框架

应用处于后台满足什么条件要判断当前应用是否处于后台,有个很简单的标准,当应用处于后台的时候,应用中所有的activity肯定都不处于运行中状态,并且应用所有处于运行中的activity在切后台时肯定会执行onPause方法。因此通过判断应用中所有的activity都不处于运行状态就可以知道当前应用处于后台,当有一个应用或多个activity处于运行状态时应用就处于前台。下面是很经典的activi...

2019-03-15 17:29:01 503

原创 高逼格Android转场动画

AndroidAndroid Transition Framework can be used for three main things:1、Animate activity layout content when transitioning from one activity to another.2、Animate shared elements (Hero views) in tra...

2019-03-01 15:24:40 4492 3

原创 WorkManager完全解析

前言Workmanager

2019-01-20 21:06:09 3190

原创 Room Database完全解析

前言Android数据持久层直接使用SQLite很麻烦,Google官方推出了Room, Google对room的定义:The Room persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of ...

2019-01-18 11:46:52 4573

原创 6本通往高级Android开发者必看的英文书籍,附下载地址

前言看书是每个阶段进步必备的过程,要学习Android知识,成为高级Android程序员,需要非常系统的知识体系结构,看书能够帮我们从大的框架,理解整体结构。找了好长时间找到了非常好的几本外国Android方面的书籍,这些书既系统又生动,内容很好理解,绝对都是干货。我把这些书整理下来放到了GitHub上面。方面大家学习,共同进步提高。1、Android Programming Cookbook...

2019-01-09 11:32:54 1651 1

原创 Android自己搭建一个实用的SharedPreferences管理类

前言在项目中经常会用到SharedPreferences来存储一些配置信息,比如用户的账号信息等。但是当项目大了之后如果还在要使用时再单独创建和使用SharedPreferences就会造成SharedPreferences泛滥,不好管理,代码可维护性差。因此结合实际的项目经验给出一个通用的SharedPreferences管理类,把项目中所有使用到的SharedPreferences统一管理,...

2019-01-06 19:22:37 1257

原创 自己动手实现Android中的三级缓存框架

前言2018年过去了,很久之前就希望自己可以潜心研究源码,研究技术,但是空闲时间不是看电影,就是玩游戏都没有认真看技术方面的东西感觉很内疚,2019年一定要好好的研究端正态度,认真学习技术。为什么要三级缓存有时候Android应用中要获取比较大的数据,比如说图片流,短视频流等,如果每次都从网络上去请求,那么响应速度很慢的,用户体验不好。二级缓存如果把服务器拉下来的数据保存在本地数据库中,...

2019-01-01 23:20:38 1104 2

原创 Android自定义View之实现简单炫酷的球体进度球

前言最近一直在研究自定义view,正好项目中有一个根据下载进度来实现球体进度的需求,所以自己写了个进度球,代码非常简单。先看下效果:效果还是非常不错的。准备知识要实现上面的效果我们只要掌握两个知识点就好了,一个是Handler机制,用于发消息刷新我们的进度球,一个是clipDrawable。网上关于Handler的教程很多,这里重点介绍一下clipDrawable,进度球的实现全靠cli...

2018-12-26 19:57:39 1268

原创 DialogFragment使用到源码完全解析

前言最近项目中用到了DialogFragment,用起来很方便,但是坑比较多,于是自己研究了下源码,理清楚DialogFragment中Dialog和Fragment的关系,以及DialogFragment的原理。DialogFragment的使用方法1、重写onCreateDialog方法创建AlertDialog1.1 简单的AlertDialogpublic class FireM...

2018-12-22 18:21:49 466

原创 DialogFragment自定义布局和大小踩坑记

前言最近需要做一个弹出框,里面包含两个可以左右滑动的fragment的,采用dialogFragment来实现的,在使用dialogFragment的时候遇到了一些坑,所以抽时间好好梳理一些dialogFragment的使用和注意的地方。效果图先给出实现的效果图从效果图中可以看到,弹出框中包含全部和收藏两个fragment支持滑动和点击实现fragment的切换。弹出框的大小是自定义的。...

2018-12-21 16:47:22 5488 3

转载 史上最全面的Android学习资源汇总

Android应用层View绘制流程与源码分析 还记得前面《Android应用setContentView与LayoutInflater加载解析机制源码分析》这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得最终分析结果就是下面的关系:看见没有,如上图中id为content的内容就是整个...

2018-12-20 10:27:02 471

原创 LocalBroadcastManager从使用到源码分析

前言自从工作后好长时间都没写博客了,一来是实在太忙,二来也沉不下心来看技术文章心态比之前在学校的时候浮躁很多。最近项目里面用到了LocalBroadcastManager虽然用起来很简单但是源码实现起来确实很值得学习的。所以本文先介绍LocalBroadcastManager的使用,然后再进一步分析源码的实现和相关的设计模式使用。1.什么是LocalBroadcastManagerLocal...

2018-11-04 18:29:04 483

原创 git实用操作以及相关问题汇总

前言现在大部分公司代码都用git进行进行版本控制,便于团队协作开发。个人写代码的时候也可以放到GitHub上或者gitlab上面进行版本控制便于开发。最近在使用git的时候遇到了一些问题和坑因此记录一下,以方便以后的使用。git配置1.下载并安装git工具git的安装网址git打开网址安装需要的类型,git官方提供了Mac,windows和linux的版本 2.G...

2018-08-25 20:39:28 301

原创 project生成aar文件并且在另一个project中使用遇到的坑和解决方案

前言最近公司要一个项目的代码合并到另一个项目中,本来很简单使用import module就可以完成的,但是导入module的时候发现导入不了,原因是另一个项目中还依赖了其他的项目,直接到module肯定是不行了,于是就考虑使用导入aar的方式来解决。1.生成aar文件步骤1 打开需要生产aar文件的project找到app下的build.gradle文件,然后将build.gra...

2018-08-18 19:33:40 1906

原创 解决Android studio中Plugin with id 'realm-android' not found

问题Plugin with id ‘realm-android’ not found解决方案安装 Realm 作为 Gradle plugin.第一步: 把 class path dependency 加入到 project 里面的 build.gradle 文件中。buildscript { repositories { jcenter() ...

2018-08-18 18:18:03 2852 1

原创 Android常见内存泄漏及优化总结

前言最近在整理回顾零碎知识点,今天整理下Android内存优化方案分享给大家。在Android开发中,一些不好的编程习惯会导致我们的开发的app存在内存泄露的情况。下面简单介绍一些在Android开发中常见的内存泄露场景及优化方案。1.单例导致内存泄露单例模式在Android开发中会经常用到,但是如果使用不当就会导致内存泄露。因为单例的静态特性使得它的生命周期同应用的生命周期一样长...

2018-08-13 22:21:54 1174

转载 实用Android studio调试技巧

今天的文章,我要记录的就是有关调试的技巧,不论你是否已经掌握,都值得一看。对了,文章的截图是我利用下班时间整理的,所以一般会很晚回去,到家都是十点半左右,因为时间还是比较仓促的,有些地方遗漏或者不正确的,欢迎指正!下面进入正题。1. 调试窗口先来一张大图,途中详细标注了调试窗口中,各个常用的功能区域和按键。如果你觉得图片看不清,可以选择在单独的标签页打开,然后放大看(实在不行,可以留下...

2018-08-10 10:57:46 216

原创 python 实现DoS攻击

前言一 狗店老板欺负我女神,作为一个程序员这如果都能忍那还算男人?得知这个狗店老板买狗网站后果断决定黑了他,看他嚣张不嚣张。我使用的是DOS攻击,没一分钟就把他的网站日瘫了,解气。DOSDOS拒绝服务攻击(Denial-of-Service Attack)亦称洪水攻击,是一种网络攻击手法,其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。  ...

2018-05-04 17:56:08 10945 11

原创 python爬虫豆瓣推理书籍及链接

前言因为喜欢的妹子特别喜欢推理书籍,因此就想用python把豆瓣上的推理书籍给爬下来,让她惊喜惊喜,但是好像没达到预期的目的。先上一张爬到的数据图片。 代码我的代码比较简单只实现基本的功能大家可以自己改# -*- coding: utf8 -*-from bs4 import BeautifulSoupimport requestsfrom openpyxl impor...

2018-05-03 18:44:46 493

原创 人脸检测python

效果图 Dlib Python 检测人脸特征点 Face Landmark Detection 首先安装Dlib,Opencv库安装Dlib1.到这里去下载你需要的的dlib轮子:Links for dlib2.cmd进入你刚下好whl文件的位置,然后输入pip install 文件名.whl 注意后缀是whl,并且选择安装的版本要和python版本一致,如果一次安装不成...

2018-04-20 11:45:17 1527

原创 丰富的人脸相关数据库链接

前言最近写论文里面有人脸识别相关的部分需要人脸数据,于是在网上找了相关的数据库,下面的连接大都不用翻墙就可以进去下载,十分丰富。在人脸检测、人脸识别和属性分析等方面,常用的数据库可分为以下五部分。1、人脸检测数据库:(1999年发布)CMU+MIT:180幅图像,共734个人脸。包含3个正面人脸测试子集和一个旋转人脸测试子集,其中正面人脸测试子集有130幅图像,共511个人脸;...

2018-04-19 11:06:28 719

转载 github博客加访问量标签

普通用户只需两步走:一行脚本+一行标签,搞定一切。追求极致的用户可以进行任意DIY。一、安装脚本(必选)要使用不蒜子必须在页面中引入busuanzi.js,目前最新版如下。<script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>不蒜子可...

2018-04-10 15:17:01 3936

原创 Github搭建博客

搭建这个博客走了许多弯路。在这里分享总结之后的思路和简化步骤。Github Pages Hexo 博客框架 部署 Next 主题 Github PagesGithub Pages 其实本身就是 Github 提供的博客服务。 我们在 Github 中创建一个特定格式的 Repository,Github Pages 就会将里面的信息生成一个网页,展示出来。操作如下:注册 ...

2018-04-08 15:13:53 657

原创 obj模型转off模型

前言最近跑实验代码需要找一些三维模型,但是网上的大部分都是obj格式的模型,off的模型比较少,因此就想把obj格式的模型转换成off格式,这种工作对于程序元来说也不麻烦。而且OpenMesh库里面提供了很好的函数支持。主要步骤主要步骤只有三步如下非常简单一、下载OpenMesh库OpenMesh的官方下载地址http://www.openmesh.org/down...

2018-04-04 11:17:28 2386 4

原创 好玩的网格三维模型

最近写论文跑代码,跑出了一些特别好玩的三维模型。跟大家分享一下。1、游戏人物类模型炫酷机甲女战士 河神 男战士 2、动物类模型温柔的小猫 可爱的兔兔 英俊的宝马 恐怖的巨龙 奥特曼里的怪兽? 其他类模型莫名的小物体模型的下载地址包括off格式文件和obj格式文件 1、https:...

2018-04-04 10:43:21 2158

翻译 Mesh Processing Library

Mesh Processing LibraryOverview This package contains a C++ library and several application programs that demonstrate mesh processing technologies published in research papers at ACM SIGGRAPH i...

2018-03-29 11:30:30 948

原创 hexo+yilia 博客部分展示效果以及多标签实现

yilia 博客部分展示效果默认的yilia上面的博客每一篇都显示的很多,这样看起来效果很差,我们通过对要发布博客的.md文件中加一个字段就能自由的选择博客要展示部分的大小。如下:---title: 经典算法--最大存水量问题date: 2018-02-01 17:44:18 ---**题目**:给出一个数组代表围柱的高度,求能围柱的最大的水量,例如数组{ 5,2,3,2,

2018-02-02 19:24:53 5371 3

转载 Android studio下将项目代码上传至github包括更新,同步,创建依赖

一、开篇本文讲如何使用Android Studio将项目上传到github,虽然讲上传github的文章很多,但是大部分都是使用Git Bash命令行,虽然效率高些,但是有点麻烦,而且AS已经为我们很好的集成了这一功能,干嘛还要去记那么多命令呢?二、安装git三、配置Android Studio中的git安装好git后,打开AS设置,按照图片配置git 按照图片填写githu

2018-01-31 10:30:35 1066

原创 git安装上传本地代码以及遇到的问题

GitGit是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Windows版本Git下载地址https://git-scm.com/download/win下载下来后直接点击exe文件完成安装。上传本地代码到Github上要上传代码到github上先要在github上注册用户,注册完成后记住用户名和密码, 然后在github上新建一个repo

2018-01-30 16:38:41 641

简单炫酷进度球

Android实现进度球,可以根据业务逻辑来实现自己的进度显示

2018-12-26

off格式三维模型

本文件包含了 兔子 马 猫 龙 圆形 等各种形状的off格式模型

2018-04-02

mysql-connector-java-5.0.8-bin.jar

mysql-connector-java-5.0.8-bin.jar

2017-08-18

OpenGL ES 2 for Android.pdf

OpenGL ES 2 for Android.pdf高清

2017-08-05

TCP-IP详解卷1.2.3全集

TCP-IP详解卷1.2.3全集

2017-06-16

thinking in Java

thinking in Java高清

2017-06-13

spring-framework-3.2.9.RELEASE

spring-framework

2017-05-16

LeetCode高清版本

LeetCode题目答案高清

2017-05-09

剑指offer高清版本

剑指offer高清版本

2017-05-08

Java In A Nutshell

Java In A Nutshell 高清 英文原版

2017-04-21

经典算法flash动画演示

将各种排序、搜速算法以及各种数据结构的相关算法,(例如:二叉树的建立、构造哈夫曼树的算法模拟、邻接表表示的图的广度优先搜索等)以flash动画的形式表现,原本很复杂抽象的算法知识(例如图的遍历/搜索)变得极其通俗易懂。

2017-04-15

深入理解Java虚拟机(高清第二版)JVM高级特性与最佳实践

深入理解Java虚拟机(高清第二版)JVM高级特性与最佳实践

2017-04-08

Android更新

Android自动更新代码

2017-03-10

StrategyDemo

策略模式实例代码

2016-11-02

mvpLoginTest

这是MVP模式的一个实例

2016-10-30

ILoginTest|LoginTest.rar

ILoginTest

2016-10-28

HankingHu的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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