
Android
文章平均质量分 92
lzy_tinyjoy
勿在浮沙筑高台
展开
-
这可能是史上最好用的PickerView库了
从去年开始大概已经有10个月没有更新博客了,去年结婚,也有了个小baby,导致这么长时间没有更新博客,从今天起博客正常更新,一切步入正轨。今天受一个好朋友的重托分享他的一篇文章:这可能是史上最好用的PickerView库了,同时也欢迎大家关注他的简书账号:笨小孩。下面开启“CV”模式!!!如果你看到了这篇文章,希望你耐心的把它看完。我保证你认真看完了全部,一定不会让你失望。因为你可能遇到了...原创 2018-03-05 10:43:44 · 7503 阅读 · 0 评论 -
Android定向广播
简述: 有时候我们在使用广播的时候不希望自己发送的广播被其他应用程序接收到,那怎么办呢?我们只能定向的发送广播。本篇博文介绍一下定向广播的使用。相关知识介绍: android:ssp属性 在进入正题之前先来介绍一下android:ssp这个属性。这个是Google在API level 19加入的一个XML 属性,用于intent过滤的标签中。ssp是scheme-原创 2016-09-20 15:22:22 · 6524 阅读 · 0 评论 -
Android广播详解
简述: 广播接收器,也被称为全局事件,或系统事件。在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听“,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应用程序所接收原创 2016-09-20 14:45:38 · 1034 阅读 · 0 评论 -
仿QQ底部退出弹出框
前段时间碰到了类似QQ点击头像弹出对话框的需求,为此自己写了demo。可后来发现用到该自定义View的地方不是一处,而且item的数量也不一样,为了能够随意添加item数量,于是就对代码进行了重构,今天就来记录一下。为了让读者有个大致方向,首先我先把效果图贴出来:原创 2016-04-18 23:14:38 · 2429 阅读 · 2 评论 -
内存优化---Bitmap优化
如何加载一个Bitmap Bitmap在Android中指的是一张图片,可以使PNG格式也可以是JPG等常见的其他图片的格式。Android提供了四类方法加载Bitmap:decodeFile、decodeResource、decodeStream和decodeByteArray。分别用于从文件系统、资源、输入流以及字节数组中加载一个Bitmap对象,其中decideFile和decod原创 2016-06-21 18:39:18 · 4042 阅读 · 1 评论 -
Android高性能高斯模糊方案
简述: 做直播类app的时候点击进入直播间接通的过程中首先显示一张模糊的毛玻璃效果的图片,那么此时就要考虑使用高斯模糊的时候了。Android中提供了RenderScript来操作图片,但是这个的使用版本要求是在API17以上,所以我们还可以考虑使用第三方可FastBlur。使用RenderScript方案: Renderscript是android平台上进行高性能计算的框原创 2016-07-28 23:32:37 · 5713 阅读 · 1 评论 -
System.currentTimeMillis()与SystemClock.uptimeMillis()
简述: Android开发中经常会遇到计算时间间隔的场景,Java语言中提供了几种计算时间的方法:System.currentTimeMillis()和SystemClock.uptimeMillis()。那么他们之间有什么区别呢?使用的时候会遇到什么样的“坑”呢?今天梳理一下。分析: 既然是计算时间间隔,那么我们建立模型: intervalTime原创 2016-08-16 18:59:33 · 3127 阅读 · 0 评论 -
浅谈Http协议
一、Http请求报文: 请求报文介绍一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求体4个部分组成,图-1给出了请求报文的一般格式。原创 2016-04-21 18:08:43 · 2094 阅读 · 0 评论 -
Android常用的系统广播
简述: 项目中常常会用到各种广播接收器,在这里记载一些常用的广播。1、短信广播 权限: 静态注册: 广播接收器:public class SMSBroadcastReceiver e原创 2016-09-18 17:12:42 · 1518 阅读 · 0 评论 -
Android Studio配置SVN
简述: 虽然现在大部分公司都采用了分布式版本控制工具,但也不排除一部分公司仍然采用集中式的版本控制工具,集中式版本管控工具以SVN为代表,本篇博文总结一下Android Studio配置SVN。SVN的安装: SVN官方下载路径:https://tortoisesvn.net/downloads.html下载完成以后点击运行,然后需要注意的一点就是command l原创 2016-09-18 10:28:15 · 691 阅读 · 0 评论 -
Android App前后台切换的监听
项目中有时候需要用到前换台切换时的家你听,比如,App从后台进入前台需要加载手势密码页面等。 实现的大体思路:在Activity生命周期中的onStop()中判断是否进入后台,如果进入后台你就可以做一些你想要做的操作,Activity生命周期中的OnResume()方法中判断App是否进入前台,如果进入前台就做自己想要的操作。 当然这个Activity最好选择BaseActi原创 2016-01-13 12:58:36 · 6470 阅读 · 0 评论 -
(一)JVM内存区划分
简述: 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?Java程序执行过程:由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:转载 2016-09-17 20:49:04 · 616 阅读 · 0 评论 -
Android自定义View
在平时的开发中自定义View是必不可少的,甚至有时候整个复杂的界面全部采用自定义的控件,由此可以看出Android自定义控件的重要程度。先来总结一下自定义View的一般流程: ①自定义View的属性 ②在View的构造方法中获得我们自定义的属性 ③重写onMesure ④重写onDraw原创 2015-10-20 21:50:26 · 914 阅读 · 0 评论 -
Mac下使用Android Studio出现“install JDK 1.8”版本问题
简述: 今天把Android Studio的数据均清除了,后来就立即安装了最新的Android Studio 2.1.2最新版本,不过这次却突然出现了“Install JDK 1.8 version”问题。问题描述: Mac下Android Studio出现“Install JDK 1.8 version”问题,然后在Terminal中输入“javac -version”结原创 2016-09-16 16:06:56 · 2053 阅读 · 0 评论 -
利用Android Studio创建AIDL并使用AIDL
简述: Android 接口定义语言 AIDL(Android Interface Definition Language)与其他已有的 IDL 很类似。 客户端和服务端可以通过由它定义的编程接口来达成共识,以便通过进程间通讯(IPC)完成相互通讯。 在 Android 系统中,通常一个进程不允许直接访问另一个进程的内存。 因此为了能够实现对话,进程需要把对象分解为操作系统可以识别的原生原创 2016-09-04 08:14:27 · 1233 阅读 · 0 评论 -
Parcelable接口的使用
简述: Parcelable接口:Parcelable定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体(用类来表示),如果需要封装到消息中去,就必须实现这一接口,实现了这一接口,该实体就成为“可打包的”了。 通过Parcelable接口进行序列化的优势:首先,IPC过程中使用;其次,Activity之间通过Intent通信时也更加方便;最后,永久性保存对象,原创 2016-09-04 07:13:47 · 1242 阅读 · 0 评论 -
Android 7.0新特性---删除三项广播
简述: Android N 除了提供诸多多窗口支持、活动通知、后台优化、消息传递服务和Vulkan 等新特性和功能外,还对系统和 API 行为做出了各种变更。本文介绍一下Android N 后台优化新特性。Android官网官方文档: 对于Android N后台的优化主要是关闭了三项系统广播:网络状态变更广播、拍照广播以及录像广播。接下来我们看看Android官方原创 2016-09-20 15:39:59 · 5216 阅读 · 0 评论 -
Android判断某一应用是否正在运行与判断某一Service是否正在运行
这就是一个简单的工具类,直接代码:import android.app.ActivityManager;import android.content.Context;import java.util.List;/** * 作者:lzy on 2016/10/9 11:10 * 邮箱:1556342503@qq.com */public class AppUtils {原创 2016-10-11 16:17:10 · 12300 阅读 · 0 评论 -
WebViewClient与WebChromeClient的区别
Android应用开发的时候可能会用到WebView这个组件,使用过程中可能会接触到WebViewClient与WebChromeClient,那么这两个类到底有什么不同呢?在WebView的设计中,不是什么事都要WebView类干的,有些杂事是分给其他人的,这样WebView专心干好自己的解析、渲染工作就行了。WebViewClient就是帮助WebView处理各种通知、请求事件的,具体来说原创 2016-07-04 13:20:55 · 3578 阅读 · 0 评论 -
有图有真相------aar包的创建与引用
简述: aar和jar类似,区别就是一个Android Library项目导出的jar文件不能包含资源文件,比如一些drawable文件、xml资源文件之类的,所以这就有很大的限制,在gradle之前 我们要引用带资源文件的Android Library必须要把整个library导入进来进行引用,但是有了gradle之后,Android Library项目可以直接导出成aar,然后其他项原创 2016-08-30 22:46:32 · 1314 阅读 · 0 评论 -
EventBus3.0源码分析
简述: 在项目中,我们大多数开发者可能都使用过EventBus,即使没有使用过但我可以确定Android开发者也听说过这个牛X的库,那么这篇博文就从EventBus源码的角度分析一下其内部处理流程。原创 2017-04-11 17:27:11 · 2512 阅读 · 2 评论 -
内存泄漏优化---静态变量导致内存泄漏
1、要不怎么说static关键字要慎用呢?来看看下面这段代码,Context对象为静态的,那么Activity就无法正常销毁,会常驻内存。public class MainActivity extends Activity{ public static Context mContext; @Override protected void onCreate(Bundle savedIn原创 2016-06-21 13:43:46 · 12851 阅读 · 1 评论 -
Android数据存储---SharedPreferences详解及应用
在Android开发中,如果站在开发者的角度来讲,其存储方式大致分为5种,下面我就先简单介绍一下这几种存储方式,在本篇博文中谈谈SharedPreferences原创 2016-01-07 22:38:07 · 1375 阅读 · 0 评论 -
EditText常见问题汇总
简述: Android EditText常见的一写处理方法汇总,这里会不断更新。EditView默认不显示软键盘 方案一:在 AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为 adjustUnspecified|stateHidden:<activity android:name=原创 2016-11-21 16:16:48 · 605 阅读 · 0 评论 -
Android消息机制---Handler工作原理
handler可以分发Message对象和Runnable对象到主线程中, 每个Handler实例,都会绑定到创建他的线程中(一般是位于主线程),它有两个作用:(1)安排消息或Runnable 在某个主线程中某个地方执行;(2)安排一个动作在不同的线程中执行。原创 2016-06-23 19:34:11 · 1014 阅读 · 0 评论 -
自定义View常用细节性集合
简述: 在自定义View的过程中我们经常会用到一些相同的但是又是必须要主要的细节,今天分享一些细节行东西。1、字体属性及宽高测量原创 2016-11-12 14:38:44 · 765 阅读 · 2 评论 -
Android Toast工具类大放送
简述: 珍藏300年Toast工具类与大家分享,希望对大家有所帮助或者有所启发........工具类: 这里集合了常用的各种形式的Toast,代码如下:package com.lzy.test;import android.content.Context;import android.graphics.Bitmap;import android.view.Gra原创 2016-10-31 14:50:52 · 1796 阅读 · 3 评论 -
Android中建造者模式自定义Dialog
序言 由于Android系统的碎片化比较严重,加之Android采用开源方式,世界各大OEM厂商都对自家的Android系统进行了深度定制,那么这些原因会给我们开发者带来一些个麻烦,比如说,我们要开发一款App就要考虑到这款App尽量在不同系统和不同OEM深度定制的Android系统中弹出的对话框样式界面相同,那么这时候我们就不得不自定义自己的Dialog对话框。原创 2016-03-10 10:19:26 · 3127 阅读 · 0 评论 -
Android Context完全解析,你所不知道的Context的各种细节
简述: Context相信所有的Android开发人员基本上每天都在接触,因为它太常见了。但是这并不代表Context没有什么东西好讲的,实际上Context有太多小的细节并不被大家所关注,那么今天我们就来学习一下那些你所不知道的细节。Context类型: 我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Jav转载 2016-10-27 10:14:26 · 580 阅读 · 0 评论 -
Android使用BuildConfig类制作Logger工具类
套用微信的广告语:再小的知识点也体现自己的态度 -------开场语简述: 在Android开发中,我们使用android.util.Log来打印日志,一般我们会设置一个全局变量,标记软件是否显示日志,打包发布之前只要改下DEBUG=false就行了,但是每次在发布之前都要手动去改这个变量,是不是很不方便?对,那么有没有可以不用手动处原创 2016-11-06 20:15:07 · 1443 阅读 · 0 评论 -
Android WebView使用全面解析(加载网络资源、本地HTML,JS交互)
简述: WebView是什么?有什么用途?我们先来看一下官方介绍: A View that displays web pages. This class is the basis upon which you can roll your own web browser or simply display some online content within your Ac原创 2016-09-30 09:53:48 · 19804 阅读 · 7 评论 -
Android状态栏着色工具类
简述: 最近在搭建一个基本的Android框架,所以用到了状态栏着色,我们知道Android4.4开始已经可以改变手机状态栏颜色了,那么今天分享一组状态栏改变颜色的工具类。StatusBarCompat:/** * 类描述:修改StatusBar颜色工具类 * 作者:lzy * 邮箱:1556342503@qq.com */public class StatusBarC原创 2016-11-06 07:29:12 · 793 阅读 · 0 评论 -
android.support.v4.util.Pools源码解析
简述: 今天看别人代码,突然发现一个类pools,然后点进去看发现是在v4包下的一个工具类。官方文档对其介绍比较简单就一句话: Helper class for crating pools of objects. 对象池存取的辅助类。OK,接下来我们就分析一下源码然后再来研究一下它的使用。源码分析: 由于源码不多,所以直接贴出来便于分析:原创 2016-10-24 23:30:29 · 1576 阅读 · 0 评论 -
Android常用工具类
日志统一输出便于管理的日志工具类:import android.util.Log;/** * @author lizhenya * * @time 2016年7月4日 * * @类描述:日志管理工具类 */public class LogUtils { /** * 属性描述:控制Log日志输出的开关(发布版本时将isDebug只为false即可) */ priv原创 2016-07-04 15:48:54 · 896 阅读 · 0 评论 -
Mac系统终端命令行不执行命令 总出现command not found解决方法
配置过安卓开发环境,改过bash_profile这个文件,最后不知怎么的只有cd命令能执行,我猜测可能修改bash_profile文件后没有保存 导致的 保存命令是: source .bash_profile说下我的解决方法:1,在命令行中输入: export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin转载 2016-07-01 14:17:02 · 21002 阅读 · 1 评论 -
内存泄漏优化---ListView的优化
对于ListView的优化主要从三个方面着手。 ① 采用ViewHolder避免在getView()方法中执行耗时操作; ② 根据列表的滑动状态来控制任务的执行频率; ③ 尝试开启硬件加速来使ListView更加流畅。原创 2016-06-21 14:22:57 · 2147 阅读 · 0 评论 -
Vector和ArrayList的区别
我们从Java中的数据结构的角度去分析他们的区别;Vector和ArrayList的数据结构类型均为一维数组,而且是长度可变的一维数组。Vector:①当我们用默认构造函数创建实例的时候: Vector vector = new Vector();从源码中可以看到:调用这个构造方法默认情况下创建的一组数据长度大小为10,刚才说了Vector是可变的一维数组,所以当Vec原创 2016-04-28 10:11:30 · 801 阅读 · 0 评论 -
Hash表结构
1、什么是哈希表? 哈希表(Hash table,也叫散列表),是根据key而直接进行访问的数据结构。也就是说,它通过把key映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 从上述的定义中我们可以得出下列信息: ①“Hash表”本质是一种数据结构。 ② Hash表出现的目的:加快查找的速原创 2016-04-28 11:18:21 · 2244 阅读 · 0 评论 -
内存泄漏优化---Handler引发内存泄漏
问题描述我们使用Handler的时候经常会有下面的提示:This Handler class should be static or leaks might occur打开more:Since this Handler is declared as an inner class, it may prevent the outer class from being garbage c原创 2016-06-21 12:38:28 · 1615 阅读 · 0 评论 -
ThreadLocal工作原理
ThreadLocal是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储以后,只有在指定线程中可以获取到存储的数据,对于其他线程来说则无法获取到数据。在日常的开发中用到ThreadLocal的地方比较少,但是在某些特殊场景中,通过ThreadLocal可以轻松地实现一些看起来复杂的功能。总之,当某些数据是以线程为作用域并且不同线程具有不同的数据副本的时候,可以考虑采用Threa原创 2016-06-23 14:12:06 · 722 阅读 · 0 评论