android
文章平均质量分 74
零下十五度w
这个作者很懒,什么都没留下…
展开
-
图片加载之Glide使用总结
概述作为Glide是谷歌推荐的图片加载库,Glide又着 支持video,Gif,SVG格式,同时有着很好的生命周期管理,支持Volley,OkHttp,更好的内存管理策略等优点。相关方法with():指定了声明周期load():加载资源,String/Uri/File/Integer/URL/byte[]/T,或者 loadFromMediaStore(Uri uri)placeholder转载 2017-09-10 10:45:04 · 517 阅读 · 0 评论 -
一个APP从启动到主页面经历的过程
本文主要介绍app从启动到主页面显示经历了哪些流程以及实现原理转自:https://www.jianshu.com/p/a72c5ccbd150一、流程概述启动流程:①点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求;②system_server进程接收到请求后,向zygote进程发送创建进转载 2018-01-05 17:43:50 · 416 阅读 · 0 评论 -
关于Android方法数量限制的问题
在项目打包的时候出现 通过在defaultConfig节中设置multiDexEnabled标签为true,开启multi-dexing支持.defaultConfig { ... multiDexEnabled = true}自己项目中的打包问题解决 参考 http://www.cnblogs.com/yeahgis/p/4660873.htmlhttps原创 2018-01-23 18:14:15 · 131 阅读 · 0 评论 -
android 设置图片小妙招 setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds
手工设置文本与图片相对位置时,常用到如下方法:setCompoundDrawables(left, top, right, bottom)setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom)意思是设置Drawable显示在text的左、上、右、下位置。但是两者有些区别: setCompoundDrawablesWithI原创 2018-01-26 15:56:53 · 1958 阅读 · 0 评论 -
Android扫描银行卡获取银行卡号
card.io开源的银行卡扫描的三方库真的是很好用啊。首先需要在你的module的gradle的依赖文件中添加依赖compile 'io.card:android-sdk:5.5.1'2 清单文件中加入如下Activity<!-- Permission to vibrate - recommended, allows vibration feedback on scan --> <uses-原创 2018-02-11 11:50:05 · 2727 阅读 · 2 评论 -
Android中DialogFragment的简单使用及常见问题
关于DialogFragment实现自定义对话框样式及遇到的问题(主要是宽度的),这里记录一下。一.先写一个自定义的Dialog布局,布局就是普通的xml,想怎么写就怎么写(注意整体大小),以下使用R.layout.dialog_submit_product_t0代替二.写一个自定义类继承DialogFragment,接下来就和普通Fragment没什么区别了public class Custome原创 2018-02-08 15:03:47 · 616 阅读 · 0 评论 -
Android开发中Context详解
转自 https://www.jianshu.com/p/94e0f9ab3f1dContext都没弄明白,还怎么做Android开发?Activity mActivity =new Activity()作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢?转载 2018-03-01 16:32:38 · 477 阅读 · 0 评论 -
Android中的内存管理机制以及正确的使用方式
概述从操作系统的角度来说,内存就是一块数据存储区域,属于可被操作系统调度的资源。现代多任务(进程)的操作系统中,内存管理尤为重要,操作系统需要为每一个进程合理的分配内存资源,所以可以从两方面来理解操作系统的内存管理机制。第一:分配机制。为每一个进程分配一个合理的内存大小,保证每一个进程能够正常的运行,不至于内存不够使用或者每个进程占用太多的内存。第二:回收机制。在系统内存不足打的时候,需要有一个合理转载 2017-10-11 16:03:28 · 380 阅读 · 0 评论 -
EventBus 源码解析
概述EventBus是一款针对Android优化的发布/订阅(publish/subscribe)事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。简化了应用程序内各组件间、组件与后台线程间的通信。优点是开销小,代码更优雅。以及将发送者和接收者解耦。比如请求网络,等网络返回时通过Handler或Bro...原创 2017-09-27 10:56:39 · 156 阅读 · 0 评论 -
Listview 和RecycleView的异同
在我的一篇介绍Android新控件RecyclerView的博客( Android L新控件RecyclerView简介 )中,一个读者留言说RecyclerView跟ListView之间好像没有什么不同,我觉得这是一个好问题,应该明确地区分一下两者的睯,所以我就研究了一下它俩之间的区别,然后也对两者的使用有了更加深入的了解。Android是一个不断进化的平台,Android 5.0的v7版本支持包转载 2017-10-30 11:06:17 · 566 阅读 · 0 评论 -
常用的图片加载库的区别(Gilde,Picasso,Image-loader,Fresco)
Gilde,Picasso,Image-loader,Fresco图片加载库的使区别GlideGlide是一个非常成熟的图片加载库,他可以从多个源加载图片,如:网路,本地,Uri等,更重要的是他内部封装了非常好的缓存机制并且在处理图片的时候能保持一个低的内存消耗。 当我们调整imageview的大小时,Picasso会不管imageview大小是什么,总是直接缓存整张图片,而Glide就不一样了,原创 2017-09-12 17:06:37 · 358 阅读 · 0 评论 -
Android中对dagger2的理解
转自 https://www.jianshu.com/p/cd2c1c9f68d4前言dagger2的大名我想大家都已经很熟了,它是解决Android或java中依赖注入的一个类库(DI类库)。当我看到一些开源的项目在使用dagger2时,我也有种匆匆欲动的感觉,因此就立马想一探它的究竟,到底能给我带来怎样的好处。在学习使用dagger2的过程中,我遇到了以下的一些困惑:dagger...转载 2018-03-02 11:53:48 · 231 阅读 · 0 评论 -
IntentService的用法
参考:http://blog.csdn.net/iromkoear/article/details/63252665IntentService与Service的区别IntentService 是继承自 Service 并处理异步请求的一个类,在 IntentService 内有一个工作线程来处理耗时操作。启动IntentService的方式和启动传统的Service一样,同时,当任务执行完后,Int转载 2018-03-19 17:52:24 · 189 阅读 · 0 评论 -
HandlerThread的用法
首先我们先看一下官方的描述:Handy class for starting a new thread that has a looper. The looper can then be used to create handler classes. Note that start() must still be called.大致意思是HandlerThread能够新建拥有Loop...原创 2018-03-20 09:56:25 · 331 阅读 · 0 评论 -
Glide的使用及源码分析
Glide和Picasso两个框架全方面的对比Android高效加载大图、多图解决方案,有效避免程序OOMAndroid图片加载框架最全解析(一),Glide的基本用法Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程Android图片加载框架最全解析(三),深入探究Glide的缓存机制...原创 2018-04-12 15:53:02 · 228 阅读 · 0 评论 -
android Apk打包过程概述
转自:https://blog.csdn.net/jason0539/article/details/44917745最近看了老罗分析android资源管理和apk打包流程的博客,参考其他一些资料,做了一下整理,脱离繁琐的打包细节和数据结构,从整体上概述了apk打包的整个流程。流程概述: 1、打包资源文件,生成R.java文件 2、处理aidl文件,生成相应java 文件 3、编译工程源代码,转载 2018-05-08 16:52:16 · 177 阅读 · 0 评论 -
Android中SeekBar的使用
android自带的seekbar样式不是很好看,我们在项目开发中,经常需要对其进行美化或者重写。SeekBar设置不能拖动,重写SeekBar如下import android.content.Context;import android.util.AttributeSet;import android.view.MotionEvent;import android.widget原创 2018-01-13 23:03:52 · 1054 阅读 · 0 评论 -
Android Studio如何打包签名
Android App都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上,下面介绍Android Studio如何打包签名的相关经验,以供方便使用Android Studio如何打包签名转载 2018-01-22 09:17:08 · 197 阅读 · 0 评论 -
Android开发中线程和线程池的使用
说到线程,我想大家都不陌生,因为在开发时候或多或少都会用到线程,而通常创建线程有两种方式:1、继承Thread类 2、实现Runnable接口虽说这两种方式都可以创建出一个线程,不过它们之间还是有一点区别的,主要区别在于在多线程访问同一资源的情况下,用Runnable接口创建的线程可以处理同一资源,而用Thread类创建的线程则各自独立处理,各自拥有自己的资源。 所以,在Java中...原创 2017-09-10 15:57:37 · 266 阅读 · 0 评论 -
Android的Handler消息传递机制
能简单说得我们尽量不复杂:为了避免ANR,我们会通常把 耗时操作放在子线程里面去执行,因为子线程不能更新UI,所以当子线程需要更新的UI的时候就需要借助到安卓的消息机制,也就是Handler机制了。一个程序的运行,就是一个进程的在执行,一个进程里面可以拥有很多个线程。主线程:也叫UI线程,或称ActivityThread,用于运行四大组件和处理他们用户的交互。 ActivityThread管理应用进原创 2017-09-10 17:11:40 · 483 阅读 · 0 评论 -
Android四大组件之ContentProvider
一、定义ContentProvider,即内容提供者属于Android的四大组件之一。二、 作用进程间 进行数据交互 & 共享,即跨进程通信三、 原理ContentProvider 的底层是采用 Android 中的 Binder 机制四、具体使用关于 ContentProvider 的使用主要介绍以下内容: 4.1 统一资源标识符(URI)定义: Uniform Resource Identi原创 2017-11-29 14:30:45 · 165 阅读 · 0 评论 -
Android中的缓存策略--LruCache
一、Android中的缓存策略一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的。当缓存满了之后,再想其添加缓存,这个时候就需要删除一些旧的缓存并添加新的缓存。因此LRU(Least Recently Used)缓存算法便应运而生,LRU是近期最少使用的算法,它的核心思想原创 2017-11-21 16:08:36 · 1836 阅读 · 0 评论 -
Android中的缓存策略--DiskLruCache
LruCache是一种内存缓存策略,但是当存在大量图片的时候,我们指定的缓存内存空间可能很快就会用完,这个时候,LruCache就会频繁的进行trimToSize()操作,不断的将最近最少使用的数据移除,当再次需要该数据时,又得从网络上重新加载。为此,Google提供了一种磁盘缓存的解决方案——DiskLruCache1 DiskLruCache实现原理使用了DiskLruCache缓存策略的APP原创 2017-11-21 17:45:09 · 485 阅读 · 0 评论 -
Android中常出现内存泄漏的情况
1. 有“static”变量引用待释放类实例示例代码:public class StaticReferenceActivity extends AppCompatActivity { private static final String NAME = StaticReferenceActivity.class.getSimpleName(); private static final原创 2017-12-01 09:55:40 · 190 阅读 · 0 评论 -
android触摸事件分发与处理简述
android触摸事件分发与处理android的分发机制:由父控件判断是否拦截,如果不拦截事件,则继续分发到子控件,然后一直分发下去。处理:与分发相反,由子控件先处理事件,如果子控件不处理,则交给父控件处理,一直向上传递,直到那个控件处理了触摸事件相关方法:Boolean dispatchTouchEvent(MotionEvent ev)接收到触摸事件时,是否分发事件到下面的view,返回true原创 2017-10-24 10:43:44 · 232 阅读 · 0 评论 -
Android中Fragment的解析
一、Fragment详解1. 什么是Fragment ?你可以简单的理解为,Fragment是显示在Activity中的Activity。它可以显示在Activity中,然后它也可以显示出一些内容。因为它拥有自己的生命周期,可以接受处理用户的事件,并且你可以在一个Activity中动态的添加,替换,移除不同的 Fragment,因此对于信息的展示具有很大的便利性。2. Fragment的生命周期因原创 2017-12-01 18:18:56 · 239 阅读 · 0 评论 -
Window、Activity、DecorView以及ViewRoot之间的关系
ActivityActivity并不负责视图控制,它只是控制生命周期和处理事件。真正控制视图的是Window。一个Activity包含了一个Window,Window才是真正代表一个窗口。Activity就像一个控制器,统筹视图的添加与显示,以及通过其他回调方法,来与Window、以及View进行交互。WindowWindow是视图的承载器,内部持有一个 DecorView,而这个DecorView原创 2017-11-22 18:01:41 · 491 阅读 · 0 评论 -
Android中View测量、布局及绘制原理
一、View绘制的流程框架 View的绘制是从上往下一层层迭代下来的。DecorView–>ViewGroup(—>ViewGroup)–>View ,按照这个流程从上往下,依次measure(测量),layout(布局),draw(绘制)。 二、Measure流程顾名思义,就是测量每个控件的大小。调用measure()方法,进行一些逻辑处理,然后调用onMeasure()方法,在其中调用 s原创 2017-11-23 16:20:55 · 409 阅读 · 0 评论 -
Android四大组件之BroadcastReceiver
BroadcastReceiver全方位解析一、 定义BroadcastReceiver (广播接收器),属于Android四大组件之一在Android开发中,BroadcastReceiver的应用场景非常多广播,是一个全局的监听器,属于 Android 四大组件之一,Android 广播分为两个角色:广播发送者、广播接收者二、 作用用于监听 / 接收 应用发出的广播消息,并做出响应应用原创 2017-11-23 23:36:37 · 182 阅读 · 0 评论 -
Android四大组件之Service
一、Service简介Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件。Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要求长期运行的任务。Service默认并不会运行在子线程中,它也不运行在一个独立的进程中,它同样执行在UI线程中,因此,不要在Se原创 2017-11-24 13:40:51 · 209 阅读 · 0 评论 -
Android四大组件之Activity
一、Activity的生命周期本节内容将生命周期的情况分为两部分介绍,第一部分先了解典型的生命周期的7个部分及Activity的状态。第二部分会介绍Activity在一些特殊情况下的生命周期的经历过程。1.典型的生命周期的了解 在正常情况下,一个Activity从启动到结束会以如下顺序经历整个生命周期: onCreate()->onStart()->onResume()->onPause()原创 2017-11-24 15:39:53 · 210 阅读 · 0 评论 -
Android消息推送解析
本文将介绍Android中实现消息推送的7种主流解决方案目录1.定义 在用户未打开App时,App主动向用户推送服务器最新消息。如下图: 消息推送的本质是:App将服务器更新的信息推送给用户2.作用产品的角度:功能需要,比如说资讯类产品的新闻推送、工具类产品的公告推送等等运营的角度:活动运营需要,比如说电商类产品的促销活动;召回用户 / 提高活跃度等等3.储备知识3.1 操作系统有自身的消原创 2017-12-05 21:20:30 · 737 阅读 · 0 评论 -
金额小数点后面和前面字体大小不一致的实现
今天遇到一个需求,一个价格小数点后的要比小数点前的小,如果放两个textview感觉特别麻烦,上网上查了查可以用spannable,现整理一下基本用法方便以后使用。布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res...原创 2018-07-10 19:01:29 · 6438 阅读 · 0 评论