自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android面试题(32)-android编译过程和安装流程

android app的编译过程从网上拷了一张图这张图很好的讲述了android的编译打包过程,接下来就具体的分析分析,大致分为7步:(1)aapt(Android Asset Packaging Tool,android构建工具,在android-sdk的build-tool目录下)它的主要工作就是把项目中使用到的资源文件打包成R.java文件;(2)aidl工具会将aidl接口转换为java接...

2018-03-09 18:31:23 2123

原创 Android面试题(31)-App启动流程

先贴个链接,总结的挺全面在看这篇文章之前,希望先看完我的之前的博客 android面试(6)-Binder机制,因为关于App启动流程设计很多Binder通信;先将“三个进程”,“六个大类”进行介绍:三个进程:Launcher进程:整个App启动流程的起点,负责接收用户点击屏幕事件,它其实就是一个Activity,里面实现了点击事件,长按事件,触摸等事件,可以这么理解,把Launc...

2018-03-08 23:43:59 10574 1

原创 Android面试题(30)-RecycleView和ListView

一、两者的缓存机制上的区别    先来说一样的地方,ListView与RecyclerView缓存机制原理大致一样,滑动的时候,离开屏幕的ItemView被回收到缓存,新的itemView加在优先获取的缓存中的,这是正常的两种类似的缓存机制。    而不同的地方在于,两者的缓存层级不同,ListView只有两层,RecycleView有四级缓存。    1. mActiveViews和mAttac...

2018-03-08 17:46:05 6041 1

原创 Android面试题(29)-surfaceView与TextureView

SurfaceView:模板代码:public class SurfaceViewText extends SurfaceView implements SurfaceHolder.Callback,Runnable{ private SurfaceHolder surfaceHolder; private boolean isDrawing; public Surfac...

2018-03-08 16:50:02 1807

原创 Android面试题(28)-android的view加载和绘制流程

View的加载流程view布局一直贯穿于整个android应用中,不管是activity还是fragment都给我们提供了一个view依附的对象,关于view的加载我们在开发中一直使用,在接下来的几篇文章中将介绍在android中的加载机制和绘制流程并且对于基于android6.0的源码进行分析探讨。这一部分先来分析一下activity中view的加载流程。当我们打开activity时候,...

2018-03-08 13:36:03 7558 2

原创 Android面试题(27)-android的事件分发机制

今天开始写一点关于view的知识,先从最基本的讲吧,android的事件分发机制,其实在我看来,android的事件分发机制在现实生活中经常能看到,所以我觉得还是很好理解的;先看看生活中常见的一种情形吧;比如说,现在你所在的公司中有一项任务被派发下来了,项目经理把项目交给你的老大,你的老大老大手下有很多人,看了看觉得你做很合适,把这个任务交给你了;你一看觉得还行,你就接下来了;这么一个小小场景大概...

2018-03-07 16:40:21 13777 6

原创 Android面试题(26)-有关SharePreference的多进程

在使用SharedPreference 时,有如下一些模式:MODE_PRIVATE 私有模式,这是最常见的模式,一般情况下都使用该模式。 MODE_WORLD_READABLE,MODE_WORLD_WRITEABLE ,文件开放读写权限,不安全,已经被废弃了,google建议使用FileProvider共享文件。MODE_MULTI_PROCESS,跨进程模式,如果项目有多个进程使用同一个P...

2018-03-07 12:28:04 1181

原创 Android面试题(25)-Bundle机制

Bundle的概念理解Bundle对于Android开发者来说肯定非常眼熟,它经常出现在以下场合:Activity状态数据的保存与恢复涉及到的两个回调:void onSaveInstanceState (Bundle outState)、void onCreate (Bundle savedInstanceState)Fragment的setArguments方法:void setArgument...

2018-03-07 11:52:38 6136 1

原创 Android面试题(24)-有关bitmap的操作

有关bitmap的操作一直很多,这里特此总结一下:public class BitmapTransformUtils { //根据图片uri生成Bitmap对象 public static Bitmap getBitmapByUrl(Context context, Uri uri) { if (uri == null) return nu...

2018-03-06 23:39:52 781

原创 Android面试题(23)-图片的三级缓存工具类

上一篇博客已经把三级缓存原理大致都讲了,这篇博客就仅仅贴一下封装好的一个图片三级缓存工具类,代码内有注释,仅仅小记一下:首先是MyBitmapUtils,它提供了一个display方法去供外界调用:/** * 图片三级缓存工具类 * Created by PDD on 2018/3/6. */public class MyBitmapUtils { private NetWor...

2018-03-06 22:35:19 801

原创 Android面试题(22)-lruCache与DiskLruCache缓存详解

关于lruCache(最近最少使用)的算法,这是一个比较重要的算法,它的应用非常广泛,不仅仅在Android中使用,Linux系统等其他地方中也有使用;今天就来看一看这其中的奥秘;讲到LruCache,就不得不讲一讲LinkedHashMap,而对于LinkedHashMap,它继承的是HashMap,那么我们就先从HashMap开始看起吧;注:此篇博客所讲的所有知识都是在jdk1.8环境下的,j...

2018-03-06 22:24:38 9831

原创 android面试(21)-冷启动优化

在我们点击Android手机桌面APP图标时,有时候我么会发现,应用并不是直接进入闪屏页或者应用主页面,而是会有一个短暂时间的白屏才能进去。但如果我们点击Back键退出应用,在点击返回的时候却没有白屏或者白屏时间几乎不可见。为什么会出现这种情况呢?这就涉及到Android应用冷热启动的问题。1.相关概念:冷启动就是在启动应用前,系统中没有该应用的任何进程信息;暖启动时针对一些常驻内存中的应用,暖启...

2018-03-05 22:32:57 521

原创 android面试(20)-内存管理以及内存泄漏

内存管理1.内存管理机制概述:(1)分配机制:操作系统会为每个进程分配合理的大小内存(2)回收机制:当内存不足时,需要合理回收内存;2.Android内存管理:(1)分配机制:弹性分配,刚开始会为APP分配小额内存,根据每个APP的物理内存大小分配,然后在运行时,弹性的为其分配大小;(2)回收机制:五大分级,前台->可见->服务->后台->空进程,优先级越低,被杀死的概率越...

2018-03-05 22:15:13 644

原创 android面试(19)-Android UI卡顿

1.原理:Android渲染机制,需要在16ms中完成渲染操作,而程序进行了过多的渲染,使android系统无法在16ms内完成渲染操作,这就会导致UI卡顿;2.原因:(1)人为在UI线程中做轻微耗时操作,导致UI线程卡顿(2)布局layout过于复杂(3)同一时间内动画执行的次数过多,导致cpu或gpu负载过重(4)View过度绘制(5)View频繁的触发measure,layout,导致mea...

2018-03-05 18:37:01 517

原创 android面试(18)-Android ANR与OOM异常

从这篇开始,接下来的几篇博客将会对android的异常与性能优化进行分析,今天先说ANR异常;ANR异常1.什么是ANR异常?Application Not Responding,程序无响应2.原因:在主线程中做了耗时操作说到这里,总结一下Android里哪些操作是在主线程中:(1)Activity的所有生命周期回调(2)Service默认执行在主线程(3)BroadCastReceiver的on...

2018-03-05 17:54:33 1751

原创 android面试(16)-数据库存储框架greendao

在进行项目开发时,免不了要实现存储功能,也就是我们常说的数据持久化,我们知道,android五种存储方式,网络存储,数据库存储,文件存储,SharePreference和contentprovider,其中数据库存储是比较常用的一种方式,但是android提供的原生的sqlite用起来比较麻烦,还需要自己进行封装,所以今天就来讲一讲greendao;greenDAO是一种Android数据库ORM...

2018-03-05 17:05:13 1676

原创 android面试(15)-图片加载框架glide

图片加载框架有很多,但是glide是google官方推荐的,而且使用起来非常的方便而且功能十分强大;1.使用方法:Glide.with(this).load("http://baidu.com").into(new ImageView(this));简简单单的一句代码,就可以将url转换成图片放置在相应的控件中,很神奇。2.源码解析:从with方法开始:public static RequestM...

2018-03-01 23:15:00 2761

原创 android面试(14)-注入框架ButterKnife

今天,我们来讲一讲ButterKnife注入框架,众所周知,Android开发时,如果我们需要对一个xml中的控件进行使用的话,那么就必须去调用findViewById方法,我说一下我对这个方法的感受,一开始接触android的时候,用的非常爽,在xml中写好控件,在Activity中直接调用这么一个简单的方法就ok了;但是随着开发的一步步加深,一个页面中需要展现的控件越来越多,这就需要我们在页面...

2018-03-01 22:56:26 653

高仿微信数据库表

高仿微信的数据库表。

2018-10-30

空空如也

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

TA关注的人

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