Android
文章平均质量分 95
雨打瓦
吾不往则终日癫狂行一步则安一分
展开
-
OkHttp流程之Dispatcher
OkHttp的基本流程android 开发大多用过Okhttp, 在使用过程中,大多也是同步异步两种方式。一般使用方式如下(基于3.14.2版本):public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");OkHttpClient client = new OkHttp...原创 2020-04-08 18:08:09 · 1241 阅读 · 0 评论 -
Android图片内存计算方法
Android图片内存计算方法前言我们在做项目的时候,内存是一个绕不过去的话题。有时候同样一个app在不同的手机上运行内存差距好大,其中一个原因就是同一张图片在不同的手机中占用内存是不一样的。如果app中本地图片较多的情况下。你将图片放到drawable目录中,然后再将其盖到mipmap-xxhdpi目录中,你惊奇的发现,内存差距比你想象的打。那么这个时候我们就会有疑问 疑问一张100...原创 2020-04-05 10:55:41 · 777 阅读 · 0 评论 -
Android dex分包方法简介
目录 什么是dex为什么用到分包 mutidex使用方法 什么是dex Dex就是Dalvik VM executes的全称,可以认为是安卓虚拟机的可执行程序。 为什么用到分包 大致可以分为2个原因。 1 dex中包含的方法囊括了所有依赖的jar包和源码中的方法。在稍微大一些的项目中,这个方法数目是很可观的。而...原创 2018-08-16 12:36:04 · 1071 阅读 · 0 评论 -
picasso使用详解与原理(二)
目录前言流程简介源码分析 前言 上一篇博客picasso使用详解(一)详细介绍了picasso的各种使用方法与他的一些特性,这次从源码的角度详细讲解他的流程和原理。它的整体流程可以分为2个部分,一个是设置加载条件,确定需要展示的图片的各种属性,第二是加载然后对图片进行实际的处理,然后显示到目标对象上。 流程简介 ...原创 2018-08-31 11:31:00 · 838 阅读 · 0 评论 -
picasso使用方法与原理分析(一)
前言 安卓开源的图片加载框架有很多。最初的imageloader(目前已经不再维护),目前的picasso, glide。picasso和glide在加载展示图片这个模块其实相似度蛮高,谷歌也在很多项目中使用了glide。但这并不是说glide就在任何项目都是最适合的,我们必须在理解每个框架的原理的基础上选择适合我们的框架。接下来的几篇文章会通过分析picasso与glide...原创 2018-08-24 15:33:07 · 4983 阅读 · 0 评论 -
Glide 4.7.1 使用详解(一)
目录前言Glide特点Glide导入 使用方法通过RequestOption设置属性 加载图片的回调函数过度选项变换自定义GlideModule加载gif总结 前言 图片加载框架目前用的比较多的是picasso和glide, 其中谷歌官方也比较推荐glide, 在前文中已经分析了picasso的原理,在这里我们就开始分析一下pic...原创 2018-09-05 11:03:56 · 9867 阅读 · 1 评论 -
android 跑马灯效果
在项目中经常遇到跑马灯的效果需求,这是一个很简单的效果了。 并且安卓本身的api就是支持的。不多说了。直接上代码: <com.project.practice.MarqueeTextView android:layout_width="wrap_content" android:layout_height="wrap_content" ...原创 2018-09-05 22:45:16 · 2453 阅读 · 0 评论 -
Android 全局异常处理
简介 app崩溃,这个是大家都会遇到的问题,如果是我们自测,这个easy,我们很容易根据日志找到原因。但是有的时候并不会那么理想。 比如本人要和一个国内电视机厂商合作,因为应用都是内置到系统,并且一个人负责几个app。因为不在同一个城市,每次整机升级的时候都很痛苦。因为对方的测试也的确要测试很多东西。他们基本没时间帮你抓日志。直接把系统日志抛出来,基本都是那种20m以上的日...原创 2018-09-18 15:48:33 · 1387 阅读 · 0 评论 -
java中int与byte相互转换
基础内容简介 在做转换之前先要明确几个简单的概念。首先本文是以java为语言,以int为例子。 long数据类型在原理上是一致的。 1 int 在java中是32位, byte是8位。 2 原码,反码,补码简介 原码:就是二进制码,最高位为符号位,0表示正数,1表示负数,剩余部分表示真值。 反码:在原码的基础上,...原创 2018-09-21 13:44:31 · 110628 阅读 · 9 评论 -
LinkedHashMap源码解析(一)
目录简单概念源码 简单概念 上面一篇博客分析了Lrucache的实现原理,我们知道他是通过自己实现同步,然后利用LinkedHashMap来实现的Lru功能。这篇文章就分析一下LinkedHashMap,首先说说它的一些基本的概念(基于jdk1.8)。 1 首先它是一个关联数组,哈希表。他不是线程安全的,key和value可以为空,这也是与hash...原创 2018-10-13 16:57:14 · 2384 阅读 · 0 评论 -
LinkedHashMap源码解析(二)
前言 前文中已经解析了LinkedHashMap的插入操作,LinkedHashMap源码解析一,接下来我们接着看它剩余的操作。 取数据操作 首先我们看linkedHashMap的get的2个方法 public V get(Object key) { Node<K,V> e; //第一步是直接使用Has...原创 2018-10-14 10:54:34 · 570 阅读 · 0 评论 -
Lrucache 源码解析
LRU原理使用方法源码分析总结 LRU原理 LRU全称为Least Recently Used,即最近最少使用,是一种缓存置换算法。大家都知道在各个图片加载的第三方框架中都有他的身影。在各个加载工具流行之前,这个算法还是比较常用的。当然现在不用我们手写了。每个框架都封装的很好。我们前面分析glide的框架,他的缓存机制也是由lru缓存和软引用组成的。在这...原创 2018-10-10 23:44:07 · 355 阅读 · 0 评论 -
自定义view(二) Path绘画详解 圆形进度条
目录 简介 基础api 圆形进度条 总结 简介 view的绘制可以由无数个形状组成,在canvas基础图形绘制中,我们已经把api提供好的基本图形讲过了。Path之所以单独一章出来是因为path可以由我们自己定义形状。在绝大多数情况下,只靠上篇文章中讲的那些图形并不能实现设计师设计出来那些优美炫酷的效果。当然对于一个炫酷的效果,path...原创 2018-10-25 23:44:02 · 1119 阅读 · 0 评论 -
自定义view (一) Android Canvas详解
目录坐标系以及view的位置信息API简介Canvas基本操作Canvas变化save和restore分层的概念layer总结 坐标系以及view的位置信息 自定义view在平时有很多应用,我们知道自定义view,其实就是通过Canvas进行绘制,但是在绘制之前,一些基本的知识要明确,安卓的坐标系和我们实际在数学中用的坐标系还有一些区别, 在...原创 2018-10-24 14:19:22 · 1197 阅读 · 1 评论 -
自定义view(三) 贝塞尔曲线 水波纹效果实现
目录 前言 api分析 水波纹效果 前言 在上面的博客中说了path的绘制,path绘制, 介绍了除了贝塞尔曲线的其他情况。 在这里单独介绍一下贝塞尔曲线。贝塞尔曲线是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝塞尔曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。贝塞...原创 2018-11-12 16:41:56 · 554 阅读 · 0 评论 -
自定义view(四) 动画的使用及自定义 ,仿qq抖动
目录 简介 视图动画使用 qq抖动 总结 简介 在前面的文章中我们写了view中的图形的绘制以及水波纹的效果,从中我们可以看出做一些稍微复杂的效果都需要用到动画的功能,在android系统api1中提供了视图动画,在api11的时候提供了属性动画,接下来我们就开始讲讲基本的动画功能。 视图动画使用 通过官网我们可以看到视图动画,可以简单分为两类,补间动...原创 2018-11-15 11:33:18 · 301 阅读 · 0 评论 -
自定义view(五) 属性动画的使用及自定义 ,仿直播中花束点赞效果
目录 属性动画与视图动画区别 实现过程 API简介 仿花束点赞效果 总结 属性动画与视图动画区别 1 视图动画只能是view使用,对view做出相应的变换,但是属性动画作用于Object,任何对象都可以。2 视图动画只是改变了视觉效果,但是并没有改变其物理属性,比如button坐标在(100,100,300,300),通过位移进行移动,但是他的可点击区域...原创 2018-11-17 23:41:23 · 401 阅读 · 0 评论 -
EventBus 3.0使用详解源码分析(二)
前言 EventBus可以看成主要由两个部分组成,观察者和信息发布者。大致的流程是,android组件通过register方法注册成观察者,并通过注解@SubScribe注明处理消息的函数,eventbus会把所有的观察者和观察者中处理消息的函数保存在map中,当发布消息的时候,会根据发布消息的对象类型来检索哪些对象和方法需要处理此类信息,然后通过反射Method的invok...原创 2018-08-07 16:53:27 · 165 阅读 · 0 评论 -
EventBus 3.0使用详解源码分析(一)
目录 Eventbus前言 EventBus简介 EventBus使用 Eventbus前言 在项目开发中,总会遇到组件和组件之间,组件和线程、service之间进行通信,比如activity和多个fragment通信。android 原生也提供了一下方法,我们经常用的,有广播,handler,写回调方法以及intent。这些都可以解决通信需求,但是这...原创 2018-08-07 10:23:11 · 257 阅读 · 0 评论 -
Activity 生命周期
Activity 继承 android.content.context, 它是单独的与用户交互的界面。所以对于Activity 的生命周期应该有所了解。这样才能更加准确的把握程序中的各个控件之间的关系。今天要写一个关于录音器的小程序, 对于它周期的七个函数有些应用,所以记录一下。 这张googleAPI 上的原图大家都看过,结合这个说一下。 onCreate原创 2013-05-08 17:13:53 · 617 阅读 · 0 评论 -
MusicXML 属性解析 一
Musicxml 是一个开放的基于XML 的音乐符号文件格式,由Reccordare 公司开发。他被设计用来做为乐谱信息的交换格式,特别是在不同的乐谱显示软件的之间进行交换。MusicXML 将整体乐曲元素和属性信息表示为一份XML 文档,他克服了另外两种格式----NIFF 格式(基于图片)和SMDL 格式(过于庞大)的兼容性差,结构复杂等许多缺点,目前他已经被很多应用软件的支持。目前很原创 2013-06-03 00:01:52 · 4321 阅读 · 0 评论 -
Dom4j 解析xml文件
xml文档在越来越多的得到应用,解析xml的工具也很多,android也有自带的工具。dom4j也是一种解析工具,它可以对xml进行读写,感觉它更加的简单易使用。在这里简单介绍一下。在dom4j.org (点击)到官网下载。解压后有一个dom4j-xx.jar这个就是我们需要的包。如果打不开官网可以在这里下载http://dom4j.sourceforge.net/Attr原创 2013-06-06 11:53:24 · 767 阅读 · 0 评论 -
Android Testcase
Android提供了一系列强大的测试工具,它针对Android 的开发环境,对JUnit进行了扩展,虽然仍然可以用JUnit对Android程序就行测试,但Android改进之后的测试方法可以对程序进行更全面更细致的测试。 Android的测试核心是一个instrumentation框架,这是一个完整的测试结构,在这里只是简单的介绍一下它的使用方法。Android程序代码可以简单的分为两原创 2013-06-18 16:52:57 · 828 阅读 · 0 评论 -
Android GridView 与 Base Adapter
视图组件也有运行时创建和在xml定义这两种途径, 在android常用的视图中有一个比较重要的类,AdapterView适配器视图。适配器视图就是用适配器将视图和该视图所依赖的数据链接起来。以一个简单的GridView来解释一下。在这里自己定义继承自BaseView的ImageGridAdapter. 首先在xml文档中定义GridView. <GridView xmlns:原创 2013-07-02 16:33:58 · 1144 阅读 · 0 评论 -
Android 多线程通信Handler
在Android中应用到多线程通信,尤其是新的线程去更新主线程的UI,因为新线程无法直接更新widget, 所以在Android多应用handler处理多线程的通信。 Handler主要有两个作用,一是安排小时或者Runnable在某个主线程中某个地方执行,二是安排一个任务去别的线程工作。 提到handler肯定会涉及到Looper, Looper的作用就是替对应的Handler管原创 2013-11-19 16:09:38 · 918 阅读 · 0 评论 -
Android 音乐播放命令转化成midi命令
在Android中mediaPlayer也可以播放midi文件。可是有的时候我们需要自己控制midi文件的播放方式。 例如在播放钢琴曲谱时可以将每个note的播放命令写成midi命令,然后通过android自带的库文件libsonivox.so渲染midi命令可以使android绕过mediaplayer直接渲染播放。 利用midi播放方式就必须知道midi文件的一些简单命令。原创 2013-12-05 14:26:43 · 4530 阅读 · 0 评论 -
Android 常见错误总结
java.lang.ClassCastException: android.app.Application 这个错误一般源于工程中有继承原创 2014-05-07 10:56:22 · 454 阅读 · 0 评论 -
Android Activity Lanchemode
Android管理activity应用栈的模式,当原创 2014-06-29 14:40:05 · 595 阅读 · 0 评论 -
android 多个view自动换行
重绘groupview来实现多个textview或button的自动换行原创 2016-08-11 11:41:46 · 4735 阅读 · 2 评论 -
安卓图片轮播
android实现图片的自动轮播和点击跳转效果原创 2016-08-12 22:00:45 · 591 阅读 · 0 评论 -
使用android studio遇到的一些问题
目录目录升级到studio3.1.2之后无法编译jar包在build文件注明仓库来源依然无法编译某些glide等github开源项目implementation api compile的区别项目不停的indexing的解决方法 解决gradle.api.internal.tasks.compile.CompilationFailedException: Co...原创 2018-07-30 10:54:36 · 527 阅读 · 0 评论 -
android studio运行java程序
在写程序的时候总会遇到测试一个小的功能或者算法,这个时候如果每次都通过运行android程序来测试就太浪费时间了。studio也可以直接运行java程序。下面就直接贴步骤: 1 在已经建立的项目中添加新的module,然后选择JavaLibrary 2 填写新的module的信息,然后会生成对应的module和类,这个时候会有新的build.gradle生成 ...原创 2018-07-30 17:25:02 · 4376 阅读 · 1 评论 -
EventBus 3.0 使用详解源码分析(三)
目录前言Post流程总结 前言 前面的文章已经写完了注册流程,现在开始写post流程,如果没有看过的读者,可以通过eventbus注册流程传送。 Post流程 首先EventBus#getDefault()获取实例,而在这里还有一个初始化的方法,通过EventBusBuilder来实现初始化: public Eve...原创 2018-08-09 09:35:50 · 250 阅读 · 0 评论 -
android widget 开发
因为项目中需要用到widget,所以在这里大致记录一下widget的使用流程。因为没有深入的研究,所以仅仅是做一个大概的解析,因为需求简单,这里就不介绍RemoteViewService和RemoteViewFactory了,如果需要的不要浪费时间看下去,抱歉各位。widget也叫小部件,是一个微型视图,其实在手机launcher中的表就是个widget。在开始流程之前需要明白两个概念:...原创 2018-08-10 17:36:24 · 4419 阅读 · 0 评论 -
webview添加header,cookie 和性能优化
目录webview优缺点 webview添加headerwebview添加cookieWebView的启动优化webview的缓存,节省内存减少流量参考文档: webview优缺点 app中使用h5可以使内容更新更加灵活。周期更短。并且代码量也少,是apk的体积变小。但是同时也存在性能的问题。打开白屏还有加载慢更加耗流量的...原创 2018-08-14 12:22:39 · 9734 阅读 · 0 评论 -
Android 实时获取麦克风录音的音量大小
前几天做一个关于录音并获取音量大小的模块,今天写一个demo和大家分享。如果有各位有更好的方法可以留言提醒我,谢谢。 首先录音功能很容易实现,通过audiorecord或者mediarecorder都可以实现,如果要获取录音音量的大小,用audiorecord更加方便。实现录音功能可以大致分为几个步骤。一 初始化录音设备audiorecord。 二 ,开启一个线程实现录音功能。 三 获取原创 2013-05-21 14:54:02 · 13531 阅读 · 18 评论