8 kan137g

尚未进行身份认证

暂无相关描述

等级
博文 16
排名 31w+

Java四种引用:强引用、软引用、弱引用、虚引用

JAVA中的四种引用对象的强、软、弱和虚引用在JDK1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。强引用:只要引用存在,垃圾回收器永远...

2019-04-14 15:21:10

Asynctask 不一样的解读

Asynctask先看看官宣也就是AsyncTask的类注释,这部分非常重要:AsyncTaskenablesproperandeasyuseoftheUIthread.ThisclassallowsyoutoperformbackgroundoperationsandpublishresultsontheUIthreadwithout...

2019-04-11 22:25:13

乐观锁详解

乐观锁:乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在Java中java.util.concurrent.atomic包下面的原子变量类就是使用了乐观锁...

2019-04-11 00:09:32

adb shell dumpsys

命令集合adbshelldumpsys命令是用于打印出当前系统信息(更切确的说是dumpsys命令,因为adbshell只是为了进入手机或模拟器的shell内核,使其能够执行dumpsys命令),可以在命令后面加指定的servicename(比如activity,location),如果不加则默认打印出设备中所有service的信息.下面列举使用最多的命令:#查看Activity的...

2019-04-10 02:20:57

Android 启动页适配&启动优化

​ 随着全面屏的兴起,为了在各个机型上显示更美观,又出现了各种各样要适配的需求。首当其冲的是就是启动页的适配了,尽管只有一张单图,为了保持他不变形绞尽脑汁想了无数办法,最终找到一个简单的方案。先说下当前的分辨率。主流屏16:91280*7201.7771920*10801.7772560*14401.777非主流屏(全面屏,比...

2019-01-23 20:30:33

Android 提高app流畅性 -1

影响流畅性的因素有很多,比如:View布局及本身;主线程任务过多,导致绘制任务延迟;内存问题影响绘制;弱网,数据请求过慢,图片加载过慢。本文从View渲染的角度分析和优化,后续会推出其他几个角度的分析。流畅性的概念App运行是否流畅的唯一标准就是app是否达到每秒60帧的平滑的帧速(16ms的帧速)。16ms是个什么概念?16ms很长1s=10^3ms而CPU主频按单位...

2019-01-10 00:01:33

如何确保程序的稳定性 - Android

本文主要从App-Android的视角来看,后学末进初来乍到欢迎打脸。个人觉得要确保一个程序的稳定应该从这几个方面来分析。代码 程序框架和设计模式 内存管理 线程管理 静态代码分析工具 容错处理-主动捕捉敏感数据异常 日志收集 测试 单元测试 压力测试 流程测试 异常修复制度 根据收集到的日志修复bug 生成补丁,发布更新 代码层面...

2018-12-12 23:09:59

Android 程序启动优化

前段时间Boss说:“咱们的App启动有点慢啊,而且点击桌面ICON的时候,感觉手机有一瞬间卡死了。”问题很严重,于是决定研究一下App的启动过程。本文从下面几个角度来分析APP启动的流程 启动耗时的量化 App运行分析工具 其他应用程序启动时序应用程序启动时间启动耗时的量化既然要优化,总不能凭感觉,终归要要拿出数据说事。这里也需要通过adb指令来实现。操作启动指令...

2018-12-09 17:02:35

Android 严苛模式

 什么是StrictModeStrictMode意思为严格模式,是用来检测程序中违例情况的开发者工具。最常用的场景就是检测主线程中本地磁盘和网络读写等耗时的操作。一般会配合monkey测试一起使用,可以参考:android压力测试“要求”分两种:ThreadPolicy和VmPolicy。ThreadPolicy是线程相关的要求 VmPolicy是虚拟机相关的要求。 Th...

2018-12-09 15:37:52

android 压力测试

tips:每次去面试你都会说自己的技术经验丰富,会说自己的代码质量很高,但是说多了总会觉得有点空,到底有多好呢?这里给出一种最简单的衡量标准:压力测试。先做压力测试,然后分析日志(日志跟我们通常看到的logcat一样)。可以根据关键字exception来搜索,一般去掉会导致崩溃的异常就行。下次面试我们就可以说,我开发的APP可以经历百万次压力测试仍旧屹立不倒。demo:adbs...

2018-12-09 15:31:07

记一次APK瘦身全过程

主要从下面三个方面压缩,还有很多小细节可以优化,可以去官方查找资料java代码混淆 静态资源引用 APK包拆开分析java代码配置混淆网上随意找一个通用的Proguard文件,很多按此不表初始安装包:25,165,735 配置proguard:24,820,806 缩小336K资源文件lint清理未使用的资源文件,年老的项目能清理不少的文件选择你的项目 点击A...

2018-12-07 20:24:06

Android App 耗电量分析-2

SDK-tools版本低于25的参看另外一篇文章:AndroidApp耗电量分析-1默认配置了git环境,没有的自行配置配置Go语言环境下载 https://golang.org/doc/install#testing 配置,主要是下载下载BatteryHistorian代码及其依赖项:.bash_profile配置环境变量exportGOPATH=$HOME/wor...

2018-12-07 19:51:42

Android App 耗电量分析-1

分为新老两个版本的SDK-TOOL,新版的放在另外一篇博客AndroidApp电量分析 耗电操作主要分为下面几种高频通信 CPU密集型的计算 传感器  频繁唤醒系统解决方案-减少:您的应用可以裁剪多少操作?例如,它可以缓存下载的数据,而不是重复唤醒无线电重新下载数据? -推迟:应用程序是否需要立即执行操作?例如,它是否可以等到设备充电才将数据备份到云端?  合并:可...

2018-12-07 19:29:41

adb过滤日志

应用场景:日志太多,IDE有时候不受控,不能很好的定位到指定地方 程序崩溃的时候日志直接跳过,在没有封装异常捕捉的情况下,无法找到崩溃的原因,而logcat本身是有一定的缓存的//进入到脚本控制adbshell//根据包名或者关键字查看PIDps|grepyqrUSERPIDPPIDVSIZERSSWCHAN...

2018-06-19 20:40:35

android studio 导入项目无法运行

####学会看日志,自己分析问题1.发生这种情况一般连都会报xxxplugin找不到plugin里面看一下xxxx插件是否安装,没有就去安装一下,当然通常都是安装了的。2.然后再一个能正常启动的项目进行对比里面的buildscript看看是否全面:-对比点1:工程下的build.gradle<br/>因为项目开始构建都是从这个文件开始的,如果在导入项目下面没有找到bui...

2018-06-07 11:14:52
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!