自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android 屏幕适配方案

转载仅供本人存档及后续研究使用,请尊重原创。本文出自【张鸿洋大神的博客】https://blog.csdn.net/lmj623565791/article/details/45460089自动适配主流分辨率,自动生产xml适配文件。...

2019-06-04 15:42:34 170

原创 MD5、对称加密、非对称加密的比较区别

md5、对称加密、非对称加都是加密方式不一致。md5是一种不可逆的加密,一定记住是不可逆的。虽然现在很多算法也可以将md5解密出来但是md5还是具有很大程度上的不可逆,而且加大解密难道使用双重加密,很多登录的地方用到md5加密,那么有些人会问我用md5加密了服务器怎么解密呢,你要是这么想就错了。登录时输入用户的密码这个密码被md5加密后在服务器也存的是这个md5的字符格式,也就是说服务器的数据...

2019-04-05 17:39:00 5092

原创 Android模块化架构设计

Android模块化架构设计理念参考微信模块化设计,参考文章:https://mp.weixin.qq.com/s/6Q818XA5FaHd7jJMFBG60w

2019-04-05 17:10:33 575

原创 HTTP和HTTPS协议

一、HTTP和HTTPS发展历史什么是HTTP超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。HTTP的发布历程版本发布时间内容发展现状HTTP/0.91991年不涉及数据包传输,...

2019-04-05 16:47:11 148

原创 Http协议与Https协议区别分类(1)

Http协议是超文本传输协议,信息是明文传输;Https是具有安全性的SSL加密传输。Http采用的是80端口连接;而Https使用的是443端口。Https协议需要到ca申请证书,一般免费证书很少,需要交费,也有一些Web容器免费,如TOMCAT,而Http不需要。Http连接相对简单,是无状态的;而Https协议是有SSL+HTTP协议构建的可进行加密传输,身份认证的网络...

2019-04-05 15:17:22 205

原创 Android获取当前进程和线程ID常用方法总结

线程和进程的获取常用方式: android.os.Process获取当前进程ID:android.os.Process.myPid();获取当前进程的用户ID:android.os.Process.myUid();获取当前线程ID(1): Thread.currentThread().getId();获取当前线程ID(2): android.os.Process.myTid();获取应...

2019-03-23 17:35:11 18638

原创 git 两笔有间隔的合并

git 两笔有间隔的合并1.新建一个最新分支2.把两笔都git cherry-pick 到最新分支上3.执行 git reset --soft HEAD^ (复原最后一笔的commit)4.最后执行 git commit --amend 两笔合并成一笔提交,记得去除旧的commit id生成新的id5.git push 即可...

2019-01-04 10:49:21 753

原创 性能优化内存,在实际开发中专项原则

性能优化内存,在实际开发中专项原则性能优化内存专项,在实际应用中需要遵循的原则:遵循原则标准规则起源避免内存泄露避免activity泄露大部分严重的内存泄露都是activity泄露,因为这意味着被引用的View、图片等全部泄露减少常驻内存尽量使用RGB565手机QQ使用RGB565将节省部分...

2018-12-25 23:45:15 172

原创 Android内存检测工具系列工具集

Android内存检测工具系列工具集Android关于内存的工具不少,灵活地选择工具就显得特别重要。在此特别推荐分享涵盖一定初步和定位能力的工具,可以让我们一步到位地分析问题,提升效率。在此列举几项:工具问题能力top/procrank内存占用过大,内存泄露发现STRICTMODEactivity泄露发现meminfoNative内存泄露、是否...

2018-12-24 21:02:49 2369

原创 性能优化的终极目标-内存简析

性能优化的终极目标-内存简析通常来说为了避免磁盘I/O问题,都会用内存缓存起来,结果什么都用内存缓存起来,App的常驻内存就会很大,若内存处理不当机会变成内存问题,甚至最后成为OOM的导火索。Out of Memory,OOM是常见的内存溢出问题。通常会在decode图片的时候触发,但不一定是decode图片的问题,因为也许它只是压垮骆驼的稍微大一点的稻草。在虚拟机的Heap内存使用超过堆...

2018-12-22 18:26:52 836

原创 Android sdk插桩集成到第三方app

在实际应用中,如需要把自己的APM或者sdk等代码集成加入第三方应用,来测试对比竞品调研。对于大批量地修改Smali语法,

2018-12-15 17:34:57 1023

原创 最容易被忽略的性能洼地-磁盘

最容易被忽略的性能洼地-磁盘数据库随机读/写是相对顺序读/写而言的,在读取或者写入的时候会随机产生offset。随机读写例子,如果向设置了autoincrement的数据库表中插入多条数据,那么每插入一条数据,都需要操作两张数据库表,这就意味着存在随机写。随机写相对于顺序写除了会产生大量的时效页面外,更重要的是增加了触发“写入放大”效应的概率。简单的例子,比如现在写入一个4kb的数据...

2018-12-13 19:36:06 162

原创 Android性能分析主要方向

Android性能分析主要方向Android性能分析优化主要从资源类性能、交互性能两个方面。一、资源类。从内存、CPU、磁盘、网络、电量、GPU方面分析。二、交互类。从流畅度和响应时延方面分析。性能优化主要有由上而下和由下而上两种优化方法。资源类性能,其实是一种由下而上的性能优化方法,只要资源使用合理,资源类性能肯定会有优化效果,这种方法适合做性能优化,提出来的Bug通常比较简单易改。...

2018-12-13 19:34:10 213

原创 Android响应时延分析

Intel的研究表明,时延小于500ms是用户可以接受的最低标准,黑屏的用户体验是最差的。所以解决响应时延是很有必要的。黑屏产生的场景一般有一下几种:当应用启动时间超过5s,几乎可以必现产生黑屏或者白屏。启动新进程,未做优化,有可能会发生黑屏(如当应用前台切换后台,主进程被杀,这时再从后台切前台,会出现黑屏)。我们有这样一个疑问,在什么场景下,主进程会被杀?除了我们手动杀进程外...

2018-12-03 16:57:15 1402

原创 常用的Android几种性能分析工具

针对Android性能优化,解决界面卡顿,常用的几种性能分析工具主要有一下几种PerfBox。能够发现FPS、Activity的打开速度。Systrace。能够发现和初步定位分析绘制时流程导致的卡顿,能大约定位是GC、I/O、贴图太大,还是没用ViewHolder的问题。TraceView。能力范围是能够发现和定位。...

2018-12-03 15:56:00 810

原创 Android性能优化分类简析

Android软件性能优化主要有由上而下和由下而上两种优化方法。资源类的性能优化,其实是一种由下而上的性能优化方法,只要资源使用合理,资源类性能肯定会有优化效果,这种方法适合于做性能优化,提出来的bug通常比较简单易改;同时,对于响应时延总有较大的波动,会掩盖问题。而换一个角度看,资源消耗更稳定波动小,问题更易于复现。而从交互类性能出发,则可以理解为是由上而下的性能优化方法,主要用于修复那...

2018-12-01 17:26:58 161

原创 电池耗电的专项准则-实际开发注意事项

根据电池耗电软件app应该减少耗电的操作,应遵循以下几个原则:一、尽量让CPU休眠锁屏、灭屏、程序放置后台时,释放或停止android涉及耗电服务。如包括GPS、WifiManager、Sensor等锁屏、灭屏释放WakeLock。必须释放WakeLock,无论是间接还是直接的,否则会让CPU无法休眠,导致严重的耗电问题。使用缓存和批量预处理来提升算法效率。例如一下场景:1、当需要...

2018-12-01 17:02:35 261

原创 CPU对于耗电的简析

Android手机包含AP和BP两个CPU。AP即Application Processor,所有的用户界面以及App都是运行在AP上的。BP级Baseband Processor,手机射频都是运行在这个CPU上的。而一般我们说的耗电,PowerProfile里面的CPU其实是AP。CPU耗电无非两种情况,一种是长期频繁唤醒,原本可以仅仅在BP上运行,消耗5mA左右,但是因为唤醒,CPU(A...

2018-12-01 15:43:03 3536

原创 应用电池耗电简析

应用电池耗电简析程序耗电问题的讨论,其实讨论的是它的结果而不是原因,因为应用程序不会直接消耗电池中的电能,而是通过使用的硬件模块消耗相应的电能,也就是资源类性能(加上屏幕、GPU等)的总和。每台手机都有一个power_profile.xml文件。PowerProfile在手机厂家出ROM的时候,Android官方建议通过PowerMonitor之类的工具来测试每个硬件模块的耗电情况,并配置...

2018-11-30 18:45:40 586

原创 git两个代码库代码迁移

git两个代码库代码迁移git从一个代码库提交的代码迁移到另一个代码库。代码需要进行比较,按每一笔cherry-pick到另一个代码库,生成commit id。git 操作流程:1.git remote add xxx git-stash-url ->添加其他仓库到本地仓库,xxx为其他迁移仓库名,url为仓库clone下载路径。2.git fetch xxx ->同步远程...

2018-11-28 19:03:44 532

原创 监测和评定为分析CPU性能工具

#监测和评定为分析CPU性能工具1.TOP软件TOP软件大家应该是熟悉的,依靠adb shell top 就可以简单的列出进程的各种信息。缺点就是TOP本身的性能消耗就不小。eg:1.排除0%的进程信息:adb shell top | grep -v ‘0% S’。2.只打印1次按CPU排序的TOP 10 进程信息:adb shell top -m 10 -s cpu -n 1。...

2018-11-27 19:18:08 256

原创 CPU专项标准-实际开发中的应用

#CPU专项标准-实际开发中的应用###一、核心场景CPU算法最优eg:1.建议能用int 的不要用float。比较两个float数值大小的执行时间是int的4倍左右。这个因为CPU的运算架构所致。2.选择合适的容器。一般的容器:Vector、HashMap、LinkedHashMap等;Android提供在内存稀缺的性能场景使用容器:ArrayList、SparseArray...

2018-11-27 19:16:59 129

原创 CPU速度与负载的博弈

CPU:速度与负载的博弈在性能的问题中,,一般会提到两种问题:一种是I/O密集型问题,另一种是CPU密集型问题的问题。这里分析CPU性能问题。CPU问题无非分为三类:CPU资源冗余使用关于这个问题,可以是算法问题,有时明明可以遍历一次的却遍历两次,主要出现在查找、排序、删除等环节;也可以是没有cache,明明解码过一次的图片还重复解码。还有明明使用int就足够,偏偏要用long,导致C...

2018-11-27 19:16:21 176

原创 数据缓存使用中的坑

#数据缓存使用中的坑-WebView当我们用浏览器上网时,浏览器会把网页的信息保存起来,以便在下次再浏览该网页时可以得到迅速的相应,并且节省网络资源。咋移动端节省网络资源使用缓存显得尤为重要,可以快速响应和节省流量。很多应用中使用WebView页面,Android也为WebView提供了完善的缓存策略,缓存的资源在/data/data/应用package下生成database与cache两...

2018-11-27 19:14:47 536

原创 Android性能分析_网络

#Android性能优化中不可控因素资源性能中,磁盘、内存、CPU都市本地资源,除此之外还有一个外部资源-网络。对于互联网来说,它有更加丰富的内容,也有更多令人困扰的事情。而优化网络性能主要从三个方面入手:业务成功率、业务网络延迟、业务网络宽带成本。#1. 业务成功率弱信号网络和拥塞网络,处理不当都会直接影响业务的成功率,比如在发消息时刚好进入电梯或者在演唱会里分享照片等都有可能发送失败...

2018-11-27 19:12:32 268

原创 Android中WindowManager类详解

一、Window 有三种类型,分别是应用 Window、子 Window 和系统 Window。应用类 Window 对应一个 Acitivity,子 Window 不能单独存在,需要依附在特定的父 Window 中,比如常见的一些 Dialog 就是一个子 Window。系统 Window是需要声明权限才能创建的 Window,比如 Toast 和系统状态栏都是系统 Window。 二、我们对

2017-11-15 17:11:58 1156

原创 android获取当前设备运行app的进程

1.当前设备进程分类进程优先级从高到低可分为四种:前台进程、可视进程、服务进程、缓存进程。前台进程(foreground process):用户当前正在进行可操作的,一般满足以下条件:(1).屏幕顶层运行Activity(处于onResume()状态),用户正与之交互。(2).有BroadcastReceiver正在执行代码。(3).有Service在其回调方法(onC

2017-11-13 23:49:35 4100

原创 android jar转dex

1.android 编译生成的.jar文件是已经编译的.class字节码文件,.dex是android平台可执行文件类型,一般java文件打包成jar包后里面的jar资源是.class,如果需要运行于android,那必须jar里面资源为.dex。2..class字节码的jar文件转.dex文件,在Android sdk 中有自带的dx.bat文件可以直接编译转换,dx.bat所在目录在各自的编译版

2017-11-09 15:30:34 4615

原创 android MultiDex配置突破64K方法数限制

1.Android开发过程中,随着应用不断增加新功能,引入新库,apk会越来越大,到达一定规模后就可能遇到方法数65536超限问题,这方法数包括Android framework方法、library的方法、自己写的方法。Android平台的Java虚拟机Dalvik执行Dex程序时,使用的是short类型来索引DEX文件中的方法。这就意味着单个Dex文件可被引用的方法总数被限制为64x1024,

2017-11-07 15:28:21 286

原创 android横竖屏管理

1.Android横竖屏系统默认情况Android横竖屏界面显示默认会沿用上一个界面的横竖屏,即上个界面是横(竖)屏就是横(竖)屏。当正在运行软件时,USB接口突然连接或者突然弹出界面,有几率性的改变当前横竖屏情况,从而造成生命周期的变换及Ui适配等问题。2.Android强制横竖屏的实现1.在AndroidManifest.xml的activity节点添加android:scre

2017-11-07 11:51:25 431

原创 不依赖具体activity弹出全局性弹窗

1.全局弹窗的几种方式在软件开发当中经常遇到需要全局性弹窗,比如用户在使用软件时被挤下线了、有软件需要强制更新或者消息来了需要及时处理性弹窗,无论软件当前在哪个页面,都要即时弹出对话框。此种情况下要弹出弹窗,有一下几种方式可以实现:(1).第一个方法利用系统AlertDialog弹出dialog,不过样式有点不优雅,也需要AndroidManifest.xml中注册SYSTEM_ALE

2017-11-05 19:41:13 7095

原创 ant自动化使用和技巧

1. Ant简要说明Apache Ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的自动化构建。Ant具有跨平台性和操作简单等特点。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种任务。2. Ant环境搭建 ant下载路径http://ant.apach

2017-11-01 21:28:58 633

原创 Android设备ID简析

对于获取设备唯一ID一直以来由于生产商、Android版本、设备类型等不一致,导致根据设备开放的接口返回垃圾数据或为空值。目前Google官方给出的说法也是不完美的,暂时没有一个很完美的方法能够解决这个问题。

2017-11-01 17:39:43 979

全局对话框UiView(不依赖activity的全局对话框多种方式实现)

不依赖activity的全局对话框多种方式实现。里面有windowmanager的具体多种样式实现,也有activity背景透方式实现。

2017-11-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除