随笔分类 -  android

摘要:帧动画(Frame Animation) 定义: 帧动画就是按照顺序播放一帧一帧的照片达到动画的效果。 我们可以看一下实现过程:在drawable目录下新建frame_list.xml <?xml version="1.0" encoding="utf-8"?> <animation-list xm 阅读全文
posted @ 2021-08-22 23:18 NeilZhang 阅读(804) 评论(0) 推荐(0)
摘要:1 问题引入: a) 域名劫持: dns过程中某个环节被攻击/篡改,导致dns结果为劫持者的服务器。例如竞争对手将你方的app下载地址篡改为他方的app下载地址。 b) 对现网用户进行监控时,发现个别用户请求时间为几十秒,而客户端设置的connectTimeout时间为二十秒。 原因:初步判断为dn 阅读全文
posted @ 2020-03-03 06:41 NeilZhang 阅读(1108) 评论(0) 推荐(0)
摘要:说明: 本文只讨论Log日志,而不是应用的埋点日志。 Android 日志架构 用一张图来了解Android Log的架构: 具体的流程可以看下面的这张图: 这里涉及到三个进程: APP进程: 调用Log的接口打日志,最终通过soctket通信发送给Logd进程 Logd进程:有一个缓冲区用于存储日 阅读全文
posted @ 2019-09-08 14:27 NeilZhang 阅读(3852) 评论(0) 推荐(1)
摘要:java 四种引用 Java4种引用的级别由高到低依次为: StrongReference SoftReference WeakReference PhantomReference 1. StrongReference 此处的 tag 引用就称之为强引用。而强引用有以下特征: 1. 强引用可以直接访 阅读全文
posted @ 2019-09-01 09:10 NeilZhang 阅读(743) 评论(0) 推荐(0)
摘要:EventBus是针对Android优化的发布-订阅事件总线,简化了Android组件间的通信。EventBus以其简单易懂、优雅、开销小等优点而备受欢迎。 github 地址:https://github.com/greenrobot/EventBus 1. 使用 1.1 gradle中引入 1. 阅读全文
posted @ 2019-05-05 19:32 NeilZhang 阅读(1846) 评论(0) 推荐(3)
摘要:下载逻辑在android开发中可谓很常见,那么封装一个通用简洁的下载器时很有必要的。如果不想给工程引入一个很重的jar包那么可以直接复用下面的代码即可。主要对外接口构造函数 : public CommonDownloader(String saveDir, int timeoutMs)开始下载接口: public void start(String saveFileName, String... 阅读全文
posted @ 2018-09-06 20:47 NeilZhang 阅读(1162) 评论(0) 推荐(1)
摘要:本文不对具体的算法做深入研究,只是讲解各种安全算法的原理和使用场景。 阅读全文
posted @ 2018-05-10 20:31 NeilZhang 阅读(7815) 评论(1) 推荐(2)
摘要:Android类加载机制 Dalvik虚拟机如同其他Java虚拟机一样,在运行程序时首先需要将对应的类加载到内存中。而在Java标准的虚拟机中,类加载可以从class文件中读取,也可以是其他形式的二进制流。因此,我们常常利用这一点,在程序运行时手动加载Class,从而达到代码动态加载执行的目的。只不 阅读全文
posted @ 2018-04-03 19:43 NeilZhang 阅读(4945) 评论(0) 推荐(1)
摘要:简介 从第一次接触Protobuf到实际使用已经有半年多,刚开始可能被它的名字所唬住,其实就它是一种轻便高效的数据格式,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。 优点 平台无关,语言无关,可扩展; 提供了友好的动态库,使用简单; 解析速度快,比对应的XML快约20-100倍; 序 阅读全文
posted @ 2018-02-03 20:02 NeilZhang 阅读(41924) 评论(1) 推荐(2)
摘要:上一篇讲解了手势识别中的点击和双击事件的识别,用到的是GestureDetector类和GestureDetectorCompat类,用于监听用户触摸屏幕中的简单动作。 缩放 基本用法如下,可以通过缩放手势缩放一个View public class ScaleGestureActivity exte 阅读全文
posted @ 2018-01-01 18:42 NeilZhang 阅读(2208) 评论(0) 推荐(0)
摘要:为什么需要手势识别? 手势对于我们的app有很多的地方都在使用,比如右滑关闭界面等。手势控制分为触发动作(Touch Mechanics,用户手指在屏幕上如何动作)和触发行为(Touch Activities,界面上特定动作在特定情境下引发的结果)。这是因为同样的触发动作(如单次触击)在不同情境下可 阅读全文
posted @ 2017-12-30 11:24 NeilZhang 阅读(4347) 评论(0) 推荐(0)
摘要:点击事件的分发过程其实是对MotionEvent事件分发过程,当一个MotionEvent产生以后,系统需要把这个事件传递给一个具体的View,而这个传递过程就是分发过程。点击事件的分发由三个重要的方法共同完成:dispatchTouchEvent,onInterceptTOuchEvent,onT 阅读全文
posted @ 2017-12-29 18:50 NeilZhang 阅读(828) 评论(0) 推荐(1)
摘要:实际业务使用场景: 某业务场景需要将本地数据传递到服务端,服务端再返回传递成功或者失败的信息。 1、 失败时: 重传5次 2、设置客户端请求的最小时间间隔,这个间隔内最多请求1次 具体逻辑如下:(这里请求的最小时间间隔设置为:80s,防止客户端由于某种异常频繁的调用服务端,造成服务端异常) 实现: 阅读全文
posted @ 2017-12-26 17:24 NeilZhang 阅读(4405) 评论(0) 推荐(0)
摘要:1、应用SharePreference主要用于保存一些数据,比如用户登录后的user_id,user_mobile,这样就可以做自动登录了,每次判断SharePreference中有没有数据,有的话就自动登录。2、写入数据SharedPreferences mSharedPreferences = getSharedPreferences("loginUser", Context.MODE_PRI... 阅读全文
posted @ 2017-12-24 21:51 NeilZhang 阅读(4413) 评论(0) 推荐(1)
摘要:1、广播接收者 广播接收者简单地说就是接收广播意图的Java类,此Java类继承BroadcastReceiver类,并重写onReceive方法 public void onReceive(Context context,Intent intent), 其中intent可以获得传递的数据 定义了三 阅读全文
posted @ 2017-12-19 15:24 NeilZhang 阅读(400) 评论(0) 推荐(0)
摘要:一、实际使用场景引入: 在ListView的Adapter的getView方法中基本都会出现,使用inflate方法去加载一个布局,用于ListView的每个Item的布局。 同样,在使用ViewPager的PagerAdapter时重载instantiateItem数时经常需要加载一个布局文件。 阅读全文
posted @ 2017-11-05 07:53 NeilZhang 阅读(872) 评论(0) 推荐(0)
摘要:一、bitmap 图片格式介绍 android中图片是以bitmap形式存在的,那么bitmap所占内存,直接影响到了应用所占内存大小,首先要知道bitmap所占内存大小计算方式: bitmap内存大小 = 图片长度 x 图片宽度 x 一个像素点占用的字节数 以下是图片的压缩格式: 其中,A代表透明 阅读全文
posted @ 2017-10-31 19:19 NeilZhang 阅读(5570) 评论(0) 推荐(0)
摘要:DecorView : http://www.jianshu.com/p/5aa96683d0dc 安卓事件分发机制: http://blog.csdn.net/guolin_blog/article/details/9153747 view Paint 及 Canvas 简单介绍 http://w 阅读全文
posted @ 2017-10-09 20:17 NeilZhang 阅读(268) 评论(0) 推荐(0)
摘要:学习android开发已经四五个月,由于项目中职责的原因一直没有接触过Service的实际项目,今天重新学一遍Service用法。 问题: 作为四大组件,为什么需要Service? 它与Thread又有何区别? 具体怎么用? 如何实现与Activity之间的通信? 一、Service 介绍 从官网中 阅读全文
posted @ 2017-10-06 11:22 NeilZhang 阅读(2487) 评论(0) 推荐(0)
摘要:一、IPC 机制介绍 IPC是Inter-Process Communication的缩写,含义就是进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。那么什么是进程,什么是线程,进程和线程是两个截然不同的概念。在操作系统中,线程是CPU调度的最小单元,同时线程是一种有限的系统资源。而进程指的一个执行单元,在PC和移动设备上指的是一个程序或者一个应用。一个进程可以包含多个线程,因此进程... 阅读全文
posted @ 2017-10-01 17:24 NeilZhang 阅读(671) 评论(0) 推荐(0)