随笔分类 -  Android

专注分享Android开发实践及framework源码分析
摘要:Java中线程安全的容器主要包括两类: 、`Hashtable Collections.synchronizedList Collections.synchronizedMap`; Java 5.0引入的 包,其中包含并发队列、并发HashMap以及写入时复制容器。 依笔者看,早期使用的同步容器主要 阅读全文
posted @ 2018-02-22 08:44 yhthu 阅读(2206) 评论(2) 推荐(0) 编辑
摘要:为什么要设计散列这种数据结构呢?在现实世界中,实体之间可能存在着映射关系(key value),比如一个订单可能对应多个商品,对应一个配送站点。散列正是对这种映射关系的逻辑结构的表达,但同时,作为一种数据结构,在计算机中该如何实现存储呢? 本节将重点从散列的逻辑结构和存储结构出发,对上述涉及的散列原 阅读全文
posted @ 2018-01-23 06:50 yhthu 阅读(2399) 评论(0) 推荐(1) 编辑
摘要:基于树实现的数据结构,具有两个核心特征: 逻辑结构:数据元素之间具有层次关系; 数据运算:操作方法具有Log级的平均时间复杂度。 因此,树在文件系统、编译器、索引以及查找算法中有很广的应用,本节将以 树 二叉树 二叉搜索树 自平衡二叉树 为线索,对树及其扩展结构进行说明。 1. 栈和队列在遍历树结构 阅读全文
posted @ 2017-11-13 13:03 yhthu 阅读(9181) 评论(1) 推荐(2) 编辑
摘要:数据结构是编程的起点,理解数据结构可以从三方面入手: 1. 逻辑结构 。逻辑结构是指数据元素之间的逻辑关系,可分为线性结构和非线性结构,线性表是典型的线性结构,非线性结构包括集合、树和图。 2. 存储结构 。存储结构是指数据在计算机中的物理表示,可分为顺序存储、链式存储、索引存储和散列存储。数组是典 阅读全文
posted @ 2017-09-22 11:30 yhthu 阅读(4525) 评论(1) 推荐(2) 编辑
摘要:本文的内容有别于之前文章中纯技术的探讨,会从 业务逻辑 、 技术 、 团队 和 方法论 的角度探讨如何快速高效地完成一个Android项目。当然,快速高效是有前提的,第一,本文依然是从研发的角度来谈如何把控项目的,而这种研发人正如陈皓在 "《技术人员的发展之路》" 中提到的,需要具备 高效的学习能力 阅读全文
posted @ 2017-08-10 08:55 yhthu 阅读(1114) 评论(0) 推荐(1) 编辑
摘要:本文属于 "Android局域网内的语音对讲项目" 系列, "《实时Android语音对讲系统架构》" 阐述了局域网内Android语音对讲功能的框架,本文在此基础上进行了优化,包括音频的录制、播放,通信方式,以及整体架构的改进。 本文主要包括以下内容: 1. 通过生产者 消费者模式保证数据链路的鲁 阅读全文
posted @ 2017-05-26 10:13 yhthu 阅读(1607) 评论(0) 推荐(0) 编辑
摘要:本文属于 "Android局域网内的语音对讲项目" 系列, "《通过UDP广播实现Android局域网Peer Discovering》" 实现了局域网内的广播及多播通信,本文将重点说明系统架构,音频信号的实时录制、播放及编解码相关技术。 本文主要包含以下内容: 1. AudioRecord、Aud 阅读全文
posted @ 2017-04-25 08:53 yhthu 阅读(7926) 评论(2) 推荐(0) 编辑
摘要:本文主要介绍如下三个Android支持库控件的配合使用: TabLayout:android.support.design.widget.TabLayout ViewPager:android.support.v4.view.ViewPager RecyclerView:android.suppor 阅读全文
posted @ 2017-04-14 08:46 yhthu 阅读(3835) 评论(0) 推荐(1) 编辑
摘要:本文是对个人笔记中内容的整理,部分代码及图片来自互联网,由于不好找到原始出处,所以未加注明。 如有痛感,联系删除。 本文将介绍以下知识点: 1. TCP与UDP的区别; 2. 单播、多播、广播; 3. Java中实现UDP的重要的类; 4. Peer Discovering方案 一、TCP vs U 阅读全文
posted @ 2017-04-10 08:35 yhthu 阅读(2756) 评论(6) 推荐(3) 编辑
摘要:在生产型Android客户端软件(企业级应用)开发中,界面可能存在多个输入( )和多个操作( 和`KeyEvent`),且操作依赖于输入的状态。如下图所示的场景: 设定图中 确认操作依赖于商品编码和储位的状态 跳过操作不依赖于输入状态 登记差异操作依赖于储位和数量的状态 输入框有三种状态: 1. 待 阅读全文
posted @ 2017-03-25 14:17 yhthu 阅读(408) 评论(0) 推荐(0) 编辑
摘要:以下内容来源于一次小组内的分享,主要针对初学者,在日常开发中使用Git的基本方法及命令。 一、创建版本库 二、工作区、暂存区、基本操作、版本回退 常用命令: 在上述目录 下创建工程项目,这里以创建 为例: 首先查看当前状态: 从提示中可以看出,使用 命令可将文件从工作区提交到暂存区。 提交暂存区 从 阅读全文
posted @ 2017-03-25 13:14 yhthu 阅读(429) 评论(0) 推荐(0) 编辑
摘要:目前已经有不少Android客户端在使用Retrofit+RxJava实现网络请求了,相比于xUtils,Volley等网络访问框架,其具有网络访问效率高(基于OkHttp)、内存占用少、代码量小以及数据传输安全性高等特点。 Retrofit源码更是经典的设计模式教程,笔者已在之前的文章中分享过自己的一些体会,有兴趣的话可点击以下链接了解:《Retrofit源码设计模式解析(上)》、《Retro... 阅读全文
posted @ 2016-12-03 16:38 yhthu 阅读(4663) 评论(10) 推荐(1) 编辑
摘要:本文将接着《Retrofit源码设计模式解析(上)》,继续分享以下设计模式在Retrofit中的应用: 适配器模式 策略模式 观察者模式 单例模式 原型模式 享元模式 一、适配器模式 在上篇说明CallAdapter.Factory使用工厂模式时,提到CallAdapter本身采用了适配器模式。适配器模式将一个接口转换成客户端希望的另一个接口,使接口本不兼容的类可以一起工作。 Call接口是Re... 阅读全文
posted @ 2016-11-25 18:32 yhthu 阅读(1468) 评论(0) 推荐(0) 编辑
摘要:Retrofit通过注解的方法标记HTTP请求参数,支持常用HTTP方法,统一返回值解析,支持异步/同步的请求方式,将HTTP请求对象化,参数化。真正执行网络访问的是Okhttp,Okhttp支持HTTP&HTTP2,因此,使用Retrofit可以支持REST、HTTPS及SPDY。 行业内分析Retrofit的使用方法的文章已经比较丰富,这里不再赘述,如想了解这部分内容,请参考如下链接。 《用 ... 阅读全文
posted @ 2016-11-22 14:52 yhthu 阅读(3601) 评论(0) 推荐(2) 编辑
摘要:随着Android应用开发规模的扩大,客户端业务逻辑也越来越复杂,已然不是简单的数据展示了。如同后端开发遇到瓶颈时采用的组件拆分思想,客户端也需要进行架构设计,拆分视图和数据,解除模块之间的耦合,提高模块内部的聚合度。 开始之前先上一张内部分享时用的PPT图: 以上是笔者在客户端开发过程中面临的问题 阅读全文
posted @ 2016-09-22 19:54 yhthu 阅读(7394) 评论(2) 推荐(3) 编辑
摘要:本文内容来源于最近一次内部分享的总结,没来得及详细整理,见谅。 本次分享主要对内存泄露和线程安全这两个问题进行一些说明,内部代码扫描发现的BUG大致分为四类:1)空指针;2)除0;3)内存、资源泄露;4)线程安全。第一、二个问题属于编码考虑不周,第三、四个问题则需要更深入的分析。 内存泄露 线程安全 一、内存泄露 1、很抱歉,”XXX”已停止运行。OOM? 怎样才能让app报OOM呢... 阅读全文
posted @ 2016-05-16 17:13 yhthu 阅读(3504) 评论(4) 推荐(1) 编辑
摘要:Camera的架构与Android系统的整体架构保持一致,如下图所示,本文主要从以下四个方面对其进行说明。 Framework:Camera.java Android Runtime:android_hardware_Camera.cpp Library:Camera Client和Camera Service HAL:CameraHardwareInterface 一、Fr... 阅读全文
posted @ 2016-04-01 17:29 yhthu 阅读(30393) 评论(0) 推荐(3) 编辑
摘要:首先申明下,本文为笔者学习《OpenGL ES应用开发实践指南(Android卷)》的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载。 《OpenGL ES学习笔记(二)——平滑着色、自适应宽高及三维图像生成》中阐述的平滑着色、自适应宽高是为了实现在移动端模拟真实场景采用的方法,并且通过w分量增加了三维视角,在具体实现上采用了正交投影、透视投影的理论。本文将在此基础上... 阅读全文
posted @ 2016-02-01 09:07 yhthu 阅读(18809) 评论(0) 推荐(1) 编辑
摘要:线程通信、ActivityThread及Thread类是理解Android线程管理的关键。 线程,作为CPU调度资源的基本单位,在Android等针对嵌入式设备的操作系统中,有着非常重要和基础的作用。本小节主要从以下三个方面进行分析: 三、Thread类的内部原理、休眠及唤醒 3.1 Thread类 阅读全文
posted @ 2016-01-27 09:35 yhthu 阅读(18414) 评论(1) 推荐(2) 编辑
摘要:线程通信、ActivityThread及Thread类是理解Android线程管理的关键。 线程,作为CPU调度资源的基本单位,在Android等针对嵌入式设备的操作系统中,有着非常重要和基础的作用。本小节主要从以下三个方面进行分析: 《Android线程管理(一)——线程通信》 《Android线程管理(二)——ActivityThread》 《Android线... 阅读全文
posted @ 2016-01-19 09:19 yhthu 阅读(18224) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示