7 HankingHu

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 5k+

java多线程相关问题汇总

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

2020-06-20 11:03:22

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

tinker热更新原理

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

2020-06-04 16:57:24

三幅图弄懂EventBus核心原理

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

2020-04-16 16:34:50

图解Android中的Binder机制

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

2020-04-05 23:17:35

Android中Handler问题汇总

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

2020-04-04 16:56:20

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

减少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

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

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

2019-08-17 18:23:38

Android屏幕适配总结

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

2019-08-12 12:43:10

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

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

2019-08-06 21:23:50

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

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

2019-03-15 17:29:01

高逼格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

WorkManager完全解析

前言Workmanager

2019-01-20 21:06:09

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

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

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

2019-01-09 11:32:54

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

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

2019-01-06 19:22:37

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

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

2019-01-01 23:20:38

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

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

2018-12-26 19:57:39

DialogFragment使用到源码完全解析

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

2018-12-22 18:21:49

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 分享精英
    分享精英
    成功上传11个资源即可获取