-
调皮的内存抖动?前生今世及App解决卡顿慢
正文内存抖动内存抖动是指内存频繁地分配和回收,而频繁的gc会导致卡顿,严重时和内存泄漏一样会导致OOM。注意内存抖动为什么会造成OOM这关系到Java的垃圾回收。造成的原因主要是频繁(很重要)在循环里创建对象1、导致大量对象在短时间内被创建,由于新对象是要占用内存空间的而且是频繁,如果一次或者两次在循环里创建对...2018-01-19 阅读271
-
Dexcount Gradle Plugin —— 计算 APK 方法数量的插件
Dexcount Gradle Plugin 是一款 Gradle 插件,用于计算每个版本的 APK 或 AAR 中的方法引用数量。随着项目越来越大,Android 应用不得不面对 64k 方法数限制的问题,这个插件可帮助你监视 app 中的方法数增长情况,并避免通过消除方法或启用 multidex 来解决问题。用法在 app/build.gradle&nbs...2018-01-19 阅读314
-
Android 图片编辑的原理与实现——涂鸦与马赛克
相信大家都用过微信的图片编辑功能,非常有用,例如发送图片前可以画上一些标记,或者把隐私信息涂上马赛克。最近在杏仁医生 APP 上,我们也添加了类似功能。今天就来讲讲其中的涂鸦和马赛克的原理与实现。下图就是我们最终的实现效果。 基本概念在讲具体的实现之前,先来看一下图片编辑功能中用到的一些基本概念。...2018-01-18 阅读293
-
解决一位群友问题 Android上的隔空取物
意外写了篇文章~1概述今天逛简书的时候,发现了一个库:https://www.jianshu.com/p/e0c172c4e3bfhttps://github.com/MZCretin/WifiTransfer-master主要功能是这样的,先口述一下,当打开app,可以通过浏览器访问一个地址,然后通过浏览器可以给手机上上传apk(也支持已有apk删除),然后手机端可以安...2018-01-17 阅读282
-
『小程序开发』关于微信小程序内置组件swiper,circular(衔接)使用小技巧(实战)
前言:swiper,关于滑块的一些效果无缝,断点,视差等等...我想这里就不用做太多的赘述,这里给大家分享一下实战项目中使用circular(衔接)的一点小特性、小技巧,当然你也可以理解为遇到了一个小坑,因为不能把整个项目搬上来,所以这里用一个小事例去简单的描述一下。功能介绍swiper滑块视图容器(轮播效果)可配置项...2018-01-16 阅读280
-
微信小程序「学科排名」开发心得
前几天,教育部公布了《全国第四轮学科评估结果》,在手机上看起来不太方便,就“撸起袖子加油干”,写了一套脚本把数据收集了一下,做成了微信小程序,叫「学科排名」。界面界面长这样:界面参考了一些优秀设计元素,尽量简洁、易用。数据库学科评估的结果,说白了就是某个高校的某个学科怎么样。数据库设计如下:CREATE&...2018-01-16 阅读258
-
单 Activity 架构组件
单 Acvitivy 架构是指整个应用只有一个 MainActivity, 可能还有个 SplashAcvitiy 来作为闪屏。笔者有个项目比较特殊,必须用单 Activity 来实现。单 Activity 架构的一个挑战就是需要处理好 Fragment 的嵌套问题,曾经有最佳实践明确指出,尽量不要嵌套使用 Fragment。但是,随着 google 对 Fragment 相关...2018-01-16 阅读289
-
全面总结WebView遇到的坑及优化
关于WebView,是开发过冲不可避免需要打交道的一个控件,可以先通过下面这篇文章做一些了解:必知必会 | WebView 的一切都在这儿WebView的基本使用以及Android和js的交互.(本文作者)https://www.jianshu.com/p/b9164500d3fb但是其存在很多坑,需要我们不断的去发现、修复和优化。这篇文章讲一下WebVi...2018-01-15 阅读280
-
你一定看得懂的属性动画源码分析
前言关于属性动画的介绍有很多,但是大部分都是介绍如何使用属性动画。本文通过追溯源码,剖析属性动画内部实现机制。属性动画有两个比较重要的动画执行类ObjectAnimatorValueAnimator其中 ObjectAnimator 是 ValueAnimator 的子类。ObjectAnimator 对 ValueAnimator 做了一层封装,使得 api 变得更简单。所以这里...2018-01-11 阅读284
-
剖析Activity、Window、ViewRootImpl和View之间的关系
1概述Github地址:http://dwz.cn/7d2pvB本文梳理了Activity、View、Window、ViewRoot、Surface、AMS、WMS之间的关系,由于跳转间的流程纷繁复杂,一旦陷入代码细节就难以自拔,下文中分析省略掉很多细节,想了解的可以阅读源码或者阅读相对应的书籍。概念定义ContextImpl:Context实现类。PhoneWindow:Window唯一实...2018-01-10 阅读263