![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android应用篇
文章平均质量分 92
Tony-老师
这个作者很懒,什么都没留下…
展开
-
58同城首页腰部动态化技术选型(布局动态化)
58同城首页腰部动态化技术选型(布局动态化),包含对 RN、H5、小程序、插件化、布局动态化的详细分析原创 2022-12-08 17:34:36 · 1611 阅读 · 1 评论 -
Android应用篇 - app 安全防护
这篇文章来总结下 Android app 的安全防护手段。目录:资源混淆 代码混淆 签名校验 反调试 组件安全 Webview 的代码执行漏洞 加固 编码安全 动态加载 hook 数据存储安全 数据传输安全 内存数据安全1.资源混淆资源混淆可以使用微信团队的AndResGuard,这样能保护我们设计师辛苦设计的成果。AndResGua...原创 2019-03-22 20:09:26 · 3180 阅读 · 0 评论 -
Android应用篇 - MVC、MVP 和 MVVM
前面写的设计模式篇是代码设计上的,而对于系统设计,也有不少的模式,比如 MVC、MVP、MVVM。众所周知,GoF 总结过23个设计模式,这23个设计模式是某些特定的编程问题的特效药,这是业内公认的。 而MVC | MVP | MVVM 是一种模式,但却在 GoF 总结出来的这个23个设计模式之外,确切的说它不是一种设计模式,它是多种设计模式的组合,并不仅仅只是一个单独的一个模式。...原创 2019-03-23 17:13:30 · 1666 阅读 · 0 评论 -
Android应用篇 - 观察者、EventBus、本地广播的区别
这篇文章来分析下观察者、EventBus 和本地广播的区别。评价某种方式优劣,有很多种指标,包括空间、时间等性能因素,还有代码的复杂程度,同整个程序的相性等等。目录:本地广播 EventBus 观察者1. 本地广播优点:一般认为本地广播是三种方式中消耗时间、空间最多的一种方式,但也是同 Android 相对最好的方式。因为广播属于 Android 四大组...原创 2019-03-23 11:47:22 · 2219 阅读 · 1 评论 -
Android应用篇 - 利用 APT 实现 Android 编译时注解
这篇文章来说说 APT。目录:APT 概述 实现目标 项目框架 自定义注解模块 注解处理器模块 API 模块 项目中的使用1.APT 概述在前面的《Java篇 - 深入了解注解》一文中已经讲过,可以在运行时利用反射机制运行处理注解。其实还可以在编译时处理注解,这就不得不说 Java 官方为我们提供的注解处理工具 APT (Annotation Proce...原创 2019-03-23 13:00:58 · 1000 阅读 · 0 评论 -
Android应用篇 - app 架构设计的思考
对于 Android 客户端的架构设计,可以从分层化和模块化来考虑。目录:分层化 模块化 业务逻辑层设计1. 分层化在 Android 客户端开发中,通常可以分成以下几层:SDK层:主要是 Android SDK 及第三方的 SDK (可能基于 Android SDK 或为独立的 SDK),这些 SDK 为上层框架提供核心功能的支持。 基础框架层:...原创 2019-03-23 18:53:56 · 1462 阅读 · 0 评论 -
Android应用篇 - app 签名与加固原理分析
今天来写一下 app 的签名与加固的原理。签名的原理1. release apk 的签名文件可以看到,签名打包好的 apk 中有一个 META-INF 目录,里面包括三个重要的文件:MANIFEST.MF CERT.SF CERT.RSA来简单看下这三个文件的内容。MANIFEST.MF:Manifest-Version: 1.0Built-By: Ge...原创 2019-04-11 15:19:29 · 2367 阅读 · 0 评论 -
Android应用篇 - UI 适配全集
今天来总结一下 Android 中的 UI 适配,主要从以下几个点来介绍:px、dp、dpi、density、sp 几种适配方案 图片资源适配px、dp、dpi、density、sppx :像素单位,比如我们通常说的手机分辨列表 800*400 都是 px 的单位。dp :设备独立像素,以 dp 为尺寸单位的控件,在不同分辨率和尺寸的手机上代表了不同的真实像素,比如在分辨率...原创 2019-04-11 16:50:01 · 1043 阅读 · 0 评论 -
Android应用篇 - Fragment 的介绍、回退栈和优化
这篇文章来总结下 Fragment。全文包括 Fragment 介绍,Fragment 回退栈、V4 包差异 和Fragment 的优化四块内容。Fragment 介绍1. 简介Fragment 是在 Android3.0 版本中添加的,主要是为了解决 Android设备尺寸多样化后界面的显示问题。Fragment 比 Activity 较轻量级,可以提供与用户交互的...原创 2019-04-11 18:52:32 · 1636 阅读 · 0 评论 -
Android应用篇 - 6.0 到 9.0 的版本适配
这篇文章主要来讲讲 15 年后发布的 Android 6.0 - 9.0 的版本适配。Android 6.0/Android M (API23)1. 新特性锁屏下语音搜索用户可以直接在锁屏状态下进行语音搜索,虽然现在的一些Android手机支持语音唤醒功能,但这些语音唤醒都是第三方厂商开发的,而Android 6.0 在系统层面加入锁屏下语音搜索,这无疑会在体验上...原创 2019-04-11 20:19:28 · 2781 阅读 · 0 评论 -
Android应用篇 - 最全图片相关的优化
今天来总结一下图片相关的优化手段。目录:基础知识 分辨率的优化 图片的格式 图片的压缩 JNI 调用 JPEG 库 图片的缓存 设置图片色彩模式 回收图片 OutOfMemory 能否被 catch inBitmap1.基础知识(1) decodeFile() 与 decodeResource() 内部调用了 decodeStream()。...原创 2019-03-22 18:20:14 · 925 阅读 · 0 评论 -
Android应用篇 - Animation 和 Animator
这篇文章来讲讲 Android 中的动画,Animation 和 Animator。目录:Animation Animator1.Animation1.1 简介Animation分为两种:Tween Animation (渐变动画):通过对场景里的对象不断做图像变换 (平移、缩放、旋转) 产生动画效果。 Frame Animation (帧动...原创 2019-03-22 14:48:37 · 1587 阅读 · 0 评论 -
Android应用篇 - 从源码角度来理解 View 的绘制流程
上一篇文章从几个场景分析了下 View 的绘制流程,这篇文章我们来 read the fuck code!本文源代码基于 Android 7.0。目录:handleResumeActivity() performTraversals() performMeasure() performLayout() performDraw()1.handleR...原创 2019-03-14 21:11:27 · 267 阅读 · 0 评论 -
Android应用篇 - WebView 与 JS 全解与实战
这章来讲讲 Android 与 JS 的互相调用。目录:Android 调用 JS JS 调用 Android WebView 漏洞与内存泄漏 Dapp Brower1. Android 调用 JS1.1 方式Android 调用 JS 有两种方式:通过 WebView 的 loadUrl()。 通过 WebView 的 evaluateJa...原创 2019-03-20 15:31:55 · 1201 阅读 · 1 评论 -
Android应用篇 - 从源码角度来理解 View 的事件机制
关于 View,除了绘制,还有一个就是它的事件机制。写 View 事件的文章很多,我这边就不赘述了,直接讲重点。目录:流程图 源码分析1. 流程图在 Activity 中,当有一个事件来到的时候,会开始调用 Activity 的 dispatchTouchEvent() -> Window.dispatchTouchEvent() ->Decor...原创 2019-03-15 17:27:36 · 719 阅读 · 0 评论 -
Android应用篇 - ListView 设计分析
ListView 是 Android 常用的控件之一,其中Adapter 跟 AdapterView 之间就运用了经典的桥接模式。不过 ListView 也存在不少问题,例如局部刷新,整体的性能等,目前 RecycleView 已经成为主流。目录:ListView 的继承关系 Adapter 的作用 RecycleBin 的回收机制 源码分析1.ListV...原创 2019-03-18 12:04:50 · 1167 阅读 · 0 评论 -
Android应用篇 - 打包流程分析
平时都是直接用 gradle 打包,今天来分析一下 Android 的打包流程。目录:流程图 具体步骤分析1.流程图2. 具体步骤分析打包的工具链:aapt -> aidl -> javac -> dx -> apkbuilder -> jarsigner -> zipalign现在来一步步...原创 2019-03-20 17:39:11 · 1189 阅读 · 0 评论 -
Android应用篇 - 内存泄漏如何分析
今天来聊聊 Android 中的内存泄漏如何分析。目录:什么是内存泄漏 Android 中的内存泄漏场景 分析内存泄漏的几种方法 内存优化的一些点1. 什么是内存泄漏内存不在 gc掌控之内了,当一个对象已经不需要再使用了,本该被回收时,而有另外一个正在使用的对象持有它的引用,从而就导致该对象不能被回收。这种本该被回收的对象不能被回收而停留在内存中的现象...原创 2019-03-20 18:46:15 · 1233 阅读 · 0 评论 -
Android应用篇 - block 如何分析
今天来聊聊卡顿的问题,除了内存泄漏,页面的流畅度也非常重要。我目前使用的最流畅的 app 就是 Telegram 了。那么在 Android 中如何检测卡顿呢?目录:卡顿的原因 BlockCannary StrictMode1.卡顿的原因我总结了以下几点:在主线程处理耗时任务,比如处理 IO,操作数据库,数据计算等。 在主线程进行网络请求,当然在 A...原创 2019-03-21 19:41:07 · 2321 阅读 · 0 评论 -
Android应用篇 - RecyclerView 设计分析
RecyclerView 目前已成为 ListView,GridView 甚至HorizontalListView 的高阶替代品。最初从开源项目 Telegram 中就见到 RecyclerView 的影子,当时还惊讶于它的聊天列表怎么那么顺滑。而且目前 github 出现了越来越多的基于RecyclerView 的开源库,可见它的受欢迎程度。今天这篇文章就来分析一下 RecyclerVi...原创 2019-03-18 18:34:19 · 936 阅读 · 0 评论 -
Android应用篇 - UI 层级、过度绘制分析
过度绘制就是在同一个区域中叠加了多个控件,也就是说一个像素点上会出现多个像素的叠加,实际上呈现在我们眼前的只是最上面的一个,往往造成这种现象的原因是产品或者视觉过多繁琐的建议和交互,或者是开发人员自己不注意造成的。目录:如何分析过度绘制 如何解决过度绘制1.如何分析过度绘制通过打开开发者选项中的"显示 GPU 过度绘制" (设置/更多设置/开发者选项/调试 ...原创 2019-03-22 12:29:27 · 1508 阅读 · 0 评论 -
Android应用篇 - 从不同场景来理解 View 的绘制流程
很多文章都讲解了 View 的绘制流程,今天我想换种方式,用例子来理解。目录:准备工作 单个 View 测试 ViewGroup + View 测试1.准备工作准备两个自定义 View,分别重写 TextView 和 LinearLayout:public class MyTextView extends TextView { publi...原创 2019-03-14 18:57:05 · 303 阅读 · 0 评论