android
hjiangshujing
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Glide原理--生命周期绑定
Gilde 的使用最基础的使用Glide.with(context).load(url).into(imageView)with方法Glide.with(context)with 重载方法with(android.app.Activity)with(android.app.Fragment)with(android.support.v4.app.Fragment)with(a...原创 2020-04-27 19:54:48 · 869 阅读 · 0 评论 -
热更新原理
到现在猜开始了解热更新原理热更新方案有三种底层替换方案类加载方案Instant Run本篇文章主要是 类加载 和 Instant Run 两种方式进行的热更新类加载方案需要先了解Android 类加载,可以看这篇此处用到的是Android 中的 DexClassLoader 类加载器以下做简单的介绍Android 类加载BootClassLoaderDexClass...原创 2020-02-11 21:19:42 · 6275 阅读 · 0 评论 -
Android 中的类加载器
ClassLoader 的类型java 中的ClassLoader 加载的是jar 和class文件Android 中的ClassLoader 加载的是dex文件两种ClassLoader类型系统类加载器自定义加载器系统类加载器 (3种)BootClassLoaderPathClassLoaderDexClassLoaderBootClassLoaderAndr...原创 2020-02-10 16:08:54 · 1035 阅读 · 0 评论 -
png序列帧转换WebP动画
最近项目要用webp格式展示动画(webp格式的优点在这我就不说了,baidu很多),由于UI同学无法给予我们支持,只能给我们png序列帧文件,所以接下来的事情需要开发自己转换,所有有了这篇的总结:进入正题对于png 、jpg、 gif 等格式转换webp ,google给提供了命令行工具,下载地址:https://storage.googleapis.com/downloads.webmpr...原创 2018-05-31 12:45:40 · 22724 阅读 · 5 评论 -
LruCache原理
LruCache 里面最要有几个重要因素设置LruCache缓存的大小,一般为当前进程可用容量的1/8重写sizeOf方法,计算出要缓存的每张图片的大小int maxMemory = (int) (Runtime.getRuntime().totalMemory()/1024); int cacheSize = maxMemory/8; mMemory...原创 2018-03-14 16:52:47 · 669 阅读 · 0 评论 -
RxJava2.0 基本使用,和场景
RxJava接触挺久了,但是在实际项目中大部分都是配合retrofit使网络请求使用,其他需求比较少,就是想用的时候会忘记怎么使用,所以这里做个笔记,希望也能帮到他人本文基于RxJava2.0RxJava自己觉得知道下面几点就比较清楚了RxJava的异步实现,是通过一种扩展的观察者模式来实现的RxJava 的观察者模式:Observable (可观察者,即被观察者)、 Observer (观察者原创 2017-11-19 17:38:58 · 438 阅读 · 0 评论 -
IntentService 使用与原理
IntentService简介在Service里面不能直接进行耗时操作,一般都需要去开启子线程,如果自己去管理Service的生命周期以及子线程难免会不完善,Android提供了一个类,IntentService。IntentService是一个基于Service的一个类,用来处理异步的请求。你可以通过startService(Intent)来提交请求,该Service会在需要的时候创建,当完成原创 2017-09-13 15:31:10 · 347 阅读 · 0 评论 -
android 自定义控件--Path 基本用法
Path 使用方法详解此篇是看了一名来自2.5次元的魔法师的文章后做的笔记,原文http://www.gcssloop.com/customview/Path_Bezier,大家可以看下,文很棒1. 第一组:moveTo、setLastPoint 、lineTo 、close方法:lineTopublic void lineTo (float x, float y)例:画两条线 public Pat原创 2017-08-03 12:14:07 · 600 阅读 · 0 评论 -
RxJava2.0使用
RxJava 2.0 使用引用 compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'io.reactivex.rxjava2:rxjava:2.0.1' //RxBinding 使用 compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0' compile原创 2017-07-25 17:09:16 · 523 阅读 · 0 评论 -
Android View添加到Window的过程
Android 界面显示的过程可以分为两个步骤 1.是将我们要显示的布局添加到window上 2.在进行测量、布局、绘制 通过这两步我们想看到的View就显示在Window上了今天说下View是怎么添加到Window上的首先要从Activity的setContentView开始public void setContentView(View view) { getWindow().set原创 2017-04-20 19:19:16 · 3783 阅读 · 0 评论 -
对android 6.0 动态获取权限框架 PermissionDispatcher 的使用
对android 6.0 动态获取权限框架 PermissionDispatcher 的使用android studio 引入 需要使用PermissionsDispatcher,需要在project的 build.gradle中添加buildscript { dependencies { classpath 'com.neenbedankt.gradle.plugins:androi原创 2016-10-12 12:12:29 · 3803 阅读 · 0 评论 -
不同方式切换Fragment时,生命周期的回调的不同
先上张Fragment 生命周期图下面开始通过不同的Fragment的切换方式来分别说明生命周期的调用通过add hide show 方式来切换Fragment切换方法使用:@Override public void onCheckedChanged(RadioGroup radioGroup, int checkedId) { mFragmentTransaction原创 2016-08-30 11:21:57 · 9429 阅读 · 4 评论 -
retrofit 2.0 +RxAndroid 使用中遇到异常 【abstract method not implemented】
在retrofit 2.0 +RxAndroid 程序运行时,报错java.lang.AbstractMethodError: abstract method not implemented at retrofit.RxJavaCallAdapterFactory.get(RxJavaCallAdapterFactory.java)解决方法:将 compile 'com.squareup.retr原创 2016-06-23 11:40:43 · 859 阅读 · 0 评论 -
总结Android 性能优化的几个方面
一 、总结Android 性能优化的几个方面1. 布局优化尽量减少布局文件的层级,这样Android 在绘制的时候工作量减少了,就会提高性能删除布局中无用的控件和层级选择使用性能较低的ViewGroup,比如RelativeLayout 在RelativeLayout 和LinearLayout 中劲量使用 LinearLayout,因为RelativeLayout相对于比较复杂,布局过程需原创 2016-06-20 11:34:45 · 493 阅读 · 0 评论 -
android线程池--ThreadPoolExecutor
ThreadPoolExecutorThreadPoolExecutor 是线程池的真正实现,它的构造方法提供了一系列参数来配置线程池 这些参数直接影响到线程池的功能特性public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,原创 2016-06-20 11:30:08 · 606 阅读 · 0 评论 -
LeakCanary (Android 检测内存泄漏工具的使用)
LeakCanary是andrid 检测内存泄漏的工具,使用起来比MAT方便很多下面介绍LeakCanary 的使用 下面是在在androidStudio 中使用 首先 在 build.gradle 中加入引用,不同的编译使用不同的引用:dependencies { debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.原创 2016-06-16 10:42:56 · 699 阅读 · 0 评论 -
View 的工作原理
android开发艺术探索,笔记4.1 ViewRoot 和 DecorViewView的绘制的三大流程:measure、 layout 、draw ViewRoot对应于ViewRootImpl 类,它是连接WindowManager 和DecorView的纽带,View的三大流程均是通过ViewRoot 来完成的,在ActivityThread中,当Activity对象被创建完毕后,会将De原创 2016-06-14 15:10:06 · 372 阅读 · 0 评论 -
View 的滑动冲突
解决方案: 1. 外部拦截法 2. 内部拦截法外部拦截法指通过父容器进行拦截处理,外部拦截需要重写父容器的onInterceptTouchEvent 方法,在内部做相应的拦截 @Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean intercept = false;//是否拦截原创 2016-06-14 11:13:23 · 368 阅读 · 0 评论
分享