Tfly's Blog

一叶一菩提,一花一世界

从Android角度看MVC、MVP、MVVM

名词解释业务逻辑:对数据访问操作的简单的封装(参考) 我的通俗理解是对数据访问操作的访问过程。有两个步骤,第一个是是接口参数准备,第二个是调用接口访问 Model:是应用程序中用于处理应用程序数据逻辑的部分View:是应用程序中处理数据显示的部分Cotroller:是应用程序中处理用户交互的部分(Modle与View的交互) MVC参考 对比1、MVC 对应角色: M:Model V:x......

反编译apk

APK反编译工具介绍apktool获取apk资源文件1java -jar apktool.jar d -f app.apk -o app jadx查看源码,可以直接打开apk文件1jadx-master/build/jadx/bin/jadx-gui AXMLPrinter2如果xml无法打开,用来转换xml文件格式1java -jar AXMLPrinter2.jar AndroidMan......

水波纹进度条

参考文章 Android自定义View——实现水波纹效果类似剩余流量球 我的思路水波示意图: 如何绘制水波水波形状,使用贝塞尔曲线。如上图所示,y轴为控件左边界,在左边界多绘制一个周期。这个周期是水波X方向上的移动范围。 如何让水波动起来每次进度增加的时候,绘制起始点在X右方向上移动一小段距离,随着进度不断增加,水波不断向前移动。 绘制起始点X坐标计算公式: 当前绘制起始点X坐标=初始绘制起......

记一次Android OOM探险之旅

分析利器查看内存状态adb shell dumpsys meminfo packageName Dump Java Heap用Android Studio获取Java Heap文件 用hprof-conv命令转化文件,转化后的文件可以用MAT打开。 MAT使用MAT(Memory Analyzer Tool) Dominator Tree:列出存活的对象 右键对象 -> P......

解密Android Resource

类型Resource有一下几种类型:1、Animation Resources:包括属性动画、视图动画(补间动画、帧动画)。属性动画xm文件l在res/animator/目录下,如res/animator/filenam.xml;补间动画xml文件在目录res/anim/目录下,帧动画xml文件在res/drawable/目录下。2、Color State List Resource:xml......

给ListView的scrollBar加上标签

在使用信鸽的时候看到ListView的scorllBar加上了个标签,出于好奇,相对此一探究竟,看看是如何实现这种效果的。效果如图: 确定算法翻看ListView和继承父类的API,并没有发现如getScrollBarHeight(),getScrollBarOffset()之类的API,但是发现有computeVerticalScrollExtent(),computeVerticalS......

Sharing Files笔记

Setting Up File Sharing为了安全地向别的app提供文件,使用URI是个很好的方法。FielProvider可以为文件生成URI。 指定FileProvider: 12345678910111213141516<manifest xmlns:android="http://schemas.android.com/apk/res/android" package......

View的工作流程

View的measure过程View的measure过程由measure方法来完成,其中会调用onMeasure方法来确定View的大小。一般来说,继承View的子类都会重写onMeasure方法来确定大小。 首先,看看View的onMeasure方法。 1234protected void onMeasure(int widthMeasureSpec, int heightMeasureS......

缩放动画源码分析

背景这个动画例子来自于Android官方文档Trainning中Addding Animations一章中。Demo下载地址 动画效果 源码分析只需要看放大的过程,缩小的过程是放大的逆过程。 布局分析1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253......

通过KeyEvent选中控件

知识准备要准确的理解这篇文章,首先需要理解Android KeyEvent分发机制 需求说明 通过上、下、左、右四个方向KeyEvent选中区块。 自定义KeyCode为300、301两个KeyEvent。300时在区块内顺时针寻找下一个可获取焦点控件,301时在区块内逆时针寻找上一个可获取焦点控件。 支持ListView,GridView等集合类控件。KeyCode为300时在item内顺......