Android
文章平均质量分 72
Sky#boy
书山有路,学海无涯
展开
-
Android之你需要了解的代码混淆
基本概念Java代码是非常容易反编译的,为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。ProGuard是一个混淆代码的开源项目,它主要作用是混淆代码,当然它还具有对字节码进行缩减体积、优化等。android { ... buildTypes { release { // 开启混淆 minifyEnabled true proguardFiles getDefa原创 2020-11-28 16:51:11 · 233 阅读 · 0 评论 -
Android 系统最近几个版本的更新,你了解吗?
1. 简介软件开发这个行业基本可以认定是技术变化最快的行业,作为软件开发者为了不被淘汰,需要时刻关注新技术的变化,可以不去实践新技术但是需要对新技术有一定的宏观认识。Android系统每年都会有版本更新,作为Android开发者,怎能不了解更新的新特性、新技术,本篇文章即对Android最近几个新版本的新特性做一个总结,方便自己的查询。2. Android 9.02018年8月7日-凌...原创 2018-09-26 20:52:55 · 7133 阅读 · 0 评论 -
OkHttp源码分析(二)之拦截器链及拦截器概述
1、概述本篇文章内容主要从拦截器链的角度对OkHttp相关拦截器的实现进行源码分析,主要内容包括如下:2、拦截器链分析2.1 简介 拦截器是 OkHttp 提供的对 Http 请求和响应进行统一处理的强大机制,它可以实现网络监听、请求以及响应重写、请求失败重试等功能; 拦截器链它是一种典型的责任链模式的实现。 2.2 拦截器类关系OkHttp默认情况下为我们...原创 2018-10-28 16:27:26 · 487 阅读 · 0 评论 -
OkHttp源码分析(一)之基础使用
一、简介OKHttp是一个处理网络请求的开源项目,是Android 当前最火热网络框架,由 Square 公司负责开发和维护,我们经常使用的另外一个开源网络请求库Retrofit,它其实就是基于OKHttp来实现,对OKHttp进行再次封装。git源码地址:https://github.com/square/okhttp二、简单使用OKHttp发起网络请求,具有同步和异步两种请...原创 2018-10-24 16:18:27 · 148 阅读 · 0 评论 -
AndroidAutoSize开源库屏幕适配分析
目录1、AndroidAutoSize实战1.1 AndroidAutoSize简介1.2 代码实现1.2.1 依赖1.2.2 manifest配置1.2.3 Activity支持1.2.4 Fragment支持1.3 不同分辨率屏幕效果对比2、AndroidAutoSize原理分析2.1 基本概念2.1.1 一些重要的单位2.1.2 单位转换中涉及...原创 2018-11-01 14:33:02 · 8204 阅读 · 1 评论 -
Android之maven 仓库,maven Central,JCenter及Nexus 私服之间关系
简介在Android开发中,尤其是使用Android Studio开发过程中,我们可以看到在module中的build.gradle文件中compile许多其他开源库,这些开源库其实都是从maven仓库中下载下来的。本篇文章主要弄清楚maven仓库相关的一些概念。maven仓库何为maven仓库?所谓maven仓库,其实简单来说就是存放一些代码的地方,当我们自己编写的代码需要调...原创 2018-12-02 15:22:12 · 2215 阅读 · 0 评论 -
学习AIDL入门-一个简单的小demo
目录1、简介2、AIDL实战2.1创建一个Project2.2 创建服务端2.3 创建一个客户端应用2.4 测试3、其他思考3.1 如果有多个client 绑定同一个Service,那么是一个client对应一个service还是多个client对应同一个service?3.2 Service的生命周期是怎样的?3.3 client最好都是异步来调用aid...原创 2019-01-21 21:33:19 · 781 阅读 · 1 评论 -
实现一个悬浮可拖拽的Button
1、简介最近,因为项目需要,需要制作一个界面上可拖拽的按钮,网上也有多实例,看了下大部分都是示例不全或讲解不清晰,效果图也不明显,借此自己记录一番自己的实现方案,以备不时之需,同时也为广大学者可以直接通过拷贝方式完成项目所需。2、效果图在开始代码之前,首先看看效果图,如下:3、核心代码实现3.1DraggingButton 实现public class Draggi...原创 2019-06-02 20:14:23 · 2741 阅读 · 4 评论 -
Android Build 相关全面总结
1、build.gradle里面的几个版本说明compileSdkVersioncompileSdkVersion表示当前项目的编译版本,即你想让AndroidStudio以什么SDK版本去编译你的项目,因此在你编写代码调用系统提供的相关api时, 都是基于该版本的api的。例如 compileSdkVersion 25,当你查看系统api源码时,查看的就是 api level为25的系统源...原创 2019-07-14 18:10:01 · 395 阅读 · 0 评论 -
学习AIDL入门-传递自定义类的对象
目录1、简介2、Service 端2.1 创建StudentInfo.aidl 及 StudentInfo.java2.2IMyAidlInterface.aidl 文件中添加对应的接口2.3 在对应的Service 服务类中实现对应的接口3、client端3.1创建StudentInfo.aidl 及 StudentInfo.java3.2IMyAidlI...原创 2019-08-04 11:41:47 · 1069 阅读 · 0 评论 -
学习完注解,再来探索下ButterKnife的实现原理
1. 简介分析完Java中的反射(有关Java反射的使用看这一篇就够了)和注解(Java注解全面总结),如果就这样结束了,总感觉缺少了些什么,不拿一个开源库来分析分析,然后动手实践一遍,怎么能体会到反射和注解的博大精深呢。于是想到了Android中的一个开源库ButterKnife,用法简单,为我们减少了大量垃圾代码(例如findViewById)。本篇文章首先从ButterKnife的基本用...原创 2018-09-13 21:57:50 · 300 阅读 · 0 评论 -
Handler全面解析
一、简介有一定Android开发经验的从业者,相信大家都了解Android应用程序是通过消息来驱动的,系统为每一个应用程序维护一个消息队例,应用程序的主线程不断地从这个消息队例中获取消息(Looper),然后对这些消息进行处理(Handler)。本篇文章的目的就是要全方位的了解Android的消息处理机制,首先从最基本的使用出发,层层递进,带着思考,从源码层面上弄明白Handler的实现原理。...原创 2018-08-19 18:29:14 · 940 阅读 · 0 评论 -
Android 之 View/ViewGroup事件相关全面总结
一、简介在android中,重要性方面除了四大组件基本上就是View了,View甚至比Receiver和Provider更重要。在开发过程中,我们经常遇到需要自定义View来实现特殊功能、View之间的事件冲突(尤其是滑动冲突)等,要解决这些问题,我们都必须要对View/ViewGroup的事件有足够充分的理解。本篇文字大致内容如下图所示:二、View基础View是Android中...原创 2018-08-12 18:25:18 · 258 阅读 · 0 评论 -
Activity的横竖屏切换
在安卓开发中,如果没有在AndroidManifest.xml文件中进行配置,默认每个Activity可以自动进行横竖屏切换的。在切换过程中,Activity的生命周期执行过程如下图:会从新再onCreate();对于访问网络的界面,一般不要再次访问网络,那如何保存之前的数据呢?可以通过onSaveInstanceState()方法来保存数据,如下图:保原创 2015-07-28 16:34:07 · 365 阅读 · 0 评论 -
Glide 实现圆形图片 并动态旋转
Glide 实现圆形图片 并动态旋转原创 2017-05-16 19:09:29 · 1303 阅读 · 0 评论 -
序列化 Serializable和Parcelable用法及区别
序列化 Serializable和Parcelable用法及区别原创 2017-05-08 21:49:14 · 559 阅读 · 0 评论 -
RxPermissions 获取运行时权限
RxPermissions 获取运行时权限原创 2017-11-08 15:14:36 · 1175 阅读 · 0 评论 -
如何使用AsyncTask防止内存泄漏(Handler同理)
Andorid AsyncTask原创 2017-10-25 19:33:59 · 848 阅读 · 0 评论 -
底部弹出对话框
dialog 底部弹出对话框原创 2017-12-01 22:14:43 · 549 阅读 · 0 评论 -
Android Span 介绍
android span原创 2017-12-11 15:17:26 · 526 阅读 · 0 评论 -
Activity是如何加载布局文件的?
activity 布局原创 2017-12-07 14:13:42 · 7025 阅读 · 0 评论 -
Android的一些基本概念你弄懂了吗?-Gradle、Gradle插件及编译打包相关汇总
概念1、何为Gradle?何为Gradle插件?Gradle我们知道Android的构建系统是使用Gradle来构建应用的,Gradle是一种构建工具,它使用一种基于Groovy的特定领域语言来实现的。软件开发过程不仅仅是编写代码,还涉及到对项目的管理,例如添加项目依赖,打包,签名,发布等一系列操作,后面这些就是Gradle替我们做的事。Gradle通过编写一个名为build.gr...原创 2018-04-15 18:03:46 · 489 阅读 · 0 评论 -
Android混淆
基本概念Java代码是非常容易反编译的,为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。ProGuard是一个混淆代码的开源项目,它主要作用是混淆代码,当然它还具有对字节码进行缩减体积、优化等。android { ... buildTypes { release { // 开启混淆 min...原创 2018-04-11 19:15:26 · 134 阅读 · 0 评论 -
Android 模拟器创建参数说明
Name:自定义虚拟的名称,不能有空格或者其他非法字符,否则不能创建,即Creat AVD不能高亮点击。Target:选择要运行的android版本(也可理解为内核?),此处有两个版本,取决于你在最初时下载的选择,个人理解这两个同样为2.2版本差异在从名称上不难理解,一个是优化后的内核包,一个是google原生态的,当然这两个都是Google原版本,未被做过其他改动,通过查看i转载 2014-10-28 14:39:16 · 544 阅读 · 0 评论