![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android学习笔记
文章平均质量分 76
BruceHurrican
A coder's coding and studying record.
展开
-
UI性能测试
好文章,mark一下 前言设计师,开发人员,需求研究和测试都会影响到一个app最后的UI展示,所有人都很乐于去建议app应该怎么去展示UI。UI也是app和用户打交道的部分,直接对用户形成品牌意识,需要仔细的设计。无论你的app UI是简单还是复杂,重要的是性能一定要好。UI性能测试性能优化都需要有一个目标,UI的性能优化也是一样。你可能会觉得“我的app加载很快”很重要,但我...转载 2016-01-15 16:56:42 · 2713 阅读 · 1 评论 -
悬浮窗权限突破及兼容性处理
突破国内第三方ROM 悬浮窗权限。并解决部分三星、SONY手机无法处理触摸事件的问题等踩坑之路。原创 2017-03-20 17:27:36 · 3052 阅读 · 0 评论 -
微信团队原创分享:Android内存泄漏监控和优化技巧总结
前言对于Android平台的应用程序来说,内存优化一直是个热门话题,与传统PC应用程序不同,Android上的应用一旦出现各种异常时系统默认会以最严厉的“崩溃”方式反馈给用户,如果处理不当,将严重影响用户体验。丛所周之,移动设备的软硬件资源无法与传统PC相提并论(至少目前是这样),因而开发人员在编写应用时,需要有更多技巧、更精深的技术来应对各种局面。这其中尤以内存OOM(内存溢出)转载 2017-03-21 14:32:01 · 2668 阅读 · 0 评论 -
从 apk 瘦身的角度来比较picasso、glide、volley、cube、fresco、UIL
从体积与方法数的角度比较常用图片库。原创 2017-03-22 14:48:41 · 1509 阅读 · 0 评论 -
Android进程保活招式大全
作者:腾讯——张兴华目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 Android 进程拉活进行一个总结。Android 进程拉活包括两个层面:A. 提供进程优先级,降低进程被杀死的概率B. 在进程被杀死后,进行拉活本文下面就从这两个方面做一下总结。1. 进程的优先级Android 系统将尽量长时间地保转载 2017-03-22 16:15:23 · 434 阅读 · 0 评论 -
进程保活-探索篇之1像素保活
背景:从产品的角度来说,任何一个 app 的 PM都希望自己的 app 在用户手机中的留存率高些,之前我接触到的一个业务需求也是如此,要求提升app 在国内第三方厂商 ROM中的存活率。如前篇所述踩坑篇,保活策略只在 android 原生系统中起作用,在国内第三方厂商 ROM中是没有效果的。为了提高 app 在第三方 ROM中的存活率,调研了一些方法,最终选择 某移动社交 app的 1像素保活方案,原创 2017-03-13 15:04:50 · 7477 阅读 · 5 评论 -
我是怎样优化 Android 工程中的 Enum的
学过 Java 的人都知道,enum 可以方便的用于参数校验,类型检测,常量声明等场景。之前我接手维护一个app工程,发现其中代码有很多 enum,此时功能不多的 app 的安装包则高达 20+M,急需要 apk瘦身。除了通用的图片压缩,降低分辨率来瘦身外。针对代码层面,我还进行了,enum 改造,改一点测一点,逐步将工程中的 enum 全部替换掉。写下此文全当是个总结吧。AA.javapublic原创 2017-03-17 10:45:32 · 524 阅读 · 0 评论 -
Android GC原理探究
前言想写一篇关于android GC的想法来源于追查一个魅族手机图片滑动卡顿问题,由于不断的GC导致的丢帧卡顿的问题让我们想了很多方案去解决,所以就打算详细的看看内存分配和GC的原理,为什么会不断的GC,GC ALLOC和GC COCURRENT有什么区别,能不能想办法扩大堆内存减少GC的频次等等。1、JVM内存回收机制1.1 回收算法标记回收算法(Mark and转载 2017-05-19 14:37:08 · 852 阅读 · 0 评论 -
FlexboxLayout帮助您完成聪明的UI布局
去年我们在 Google I/O 上发布了 ConstraintLayout,使得您在构建复杂布局的同时能够让视图层级得到精简。它在 Android Studio 的 Visual Layout Editor 中也同样可以使用。 与此同时,我们开源了 FlexboxLayout,使得 Android 里的 CSS Flexible Layout 模块也能拥有同样强大转载 2017-04-05 10:14:52 · 727 阅读 · 4 评论 -
快速从手机中取出调试日志并过滤关键字段
现在 app 大部分在 debug 和 release 阶段都会在手机本地储存日志类文件,最近我在开发某个功能模块时,需要获取相应的日志信息,用 AS 的 logcat 已经达不到要求(因为日志太多了)并且 logcat 的日志不能在 AS上保存到本地。只能通过打印日志到手机 SD卡上的文件,导出后再分析。一般的操作流程是 在获取信息的模块处打印日志,并将日志信息设置成保存到 SD卡上,编译安装,触原创 2017-04-12 16:01:32 · 1175 阅读 · 0 评论 -
基于Android Architecture Components的应用架构指南
这是一篇 Android Architecture Components 的简单使用指南,目的是向大家介绍这么一种新的架构方案。Android Architecture Components 是一个由官方推出的新库,它能够帮助你去构建一个健壮,易测,可维护的应用。目前它还未正式发布(Now available in preview)。所以抱着强烈的好奇心去了解了一下。本文译自 Guide转载 2017-07-10 11:19:17 · 1115 阅读 · 0 评论 -
关于重叠包技术在jenkins打包时报错的解决方案
转载请注明出处: http://blog.csdn.net/brucehurrican/article/details/51778319最近公司项目需要进行部分业务模块的抽离,目前我在项目中采用的是重叠包技术,这样我和同事用AS开发时可以通过切换buildtype来进行不同业务模块的切换,编码,打包。坑点:打包时,应根据需要的业务模块(即buildtype对应的文件夹)来选择相应的原创 2016-06-28 21:04:05 · 1920 阅读 · 0 评论 -
CI上动态配置是否支持https7.0抓包
转载请注明出处: http://blog.csdn.net/brucehurrican/article/details/51778319最近遇到个需求,需要抓取https包,在windows下,主要是通过 fiddler工具抓包,验证服务器返回的数据是否正确。需要注意的地方是,因为google在7.0之后修改了安全权限,对于非CA授权的https证书,需要手动设置 按照官方建议如下:原创 2018-01-16 21:02:51 · 587 阅读 · 0 评论 -
广研Android卡顿监控系统
实现背景应用的使用流畅度,是衡量用户体验的重要标准之一。Android 由于机型配置和系统的不同,项目复杂App场景丰富,代码多人参与迭代历史较久,代码可能会存在很多UI线程耗时的操作,实际测试时候也会偶尔发现某些业务场景发生卡顿的现象,用户也经常反馈和投诉App使用遇到卡顿。因此,我们越来越关注和提升用户体验的流畅度问题。已有方案在这之前,我们将反馈的常见卡顿场景,或测试过程中常见的测试场景使用转载 2018-01-19 15:19:34 · 1195 阅读 · 0 评论 -
JVM 初探:内存分配、GC 原理与垃圾收集器
JVM内存的分配与回收大致可分为如下4个步骤: 何时分配 -> 怎样分配 -> 何时回收 -> 怎样回收.除了在概念上可简单认为new时分配外, 我们着重介绍后面的3个步骤:I. 怎样分配- JVM内存分配策略对象内存主要分配在新生代Eden区, 如果启用了本地线程分配缓冲, 则优先在TLAB上分配, 少数情况能会直接分配在老年代, 或被拆分成标量类型在栈上分配(JIT优化转载 2017-02-03 16:25:44 · 864 阅读 · 0 评论 -
人人车Android客户端架构演进实录
前言对于大多数创业公司而言, 初版开发时采用的简单架构,在历经数次快速迭代后,已经成为了一个”大泥球”(源于Brian Footer和Joseph Yonder的论文《大泥球》, 定义: 一大片随意构造,杂乱无章,凌乱,任意拼接,毫无头绪的代码丛林), 如下问题存在于当前的架构中:业务逻辑混杂在平台实体中,造就了代码量庞大的Activity和Fragment。本应是全局级别转载 2017-02-03 11:23:39 · 1477 阅读 · 0 评论 -
Android性能优化之加快应用启动速度
减少app启动时间,提高UX转载 2016-01-18 18:26:33 · 899 阅读 · 0 评论 -
打开应用时出现“你的手机上未安装应用程序”--实际上该应用已经安装的解决方案
最近我在做开发时,连接我的手机部署好应用时,点击桌面图标出现“你的手机上未安装应用程序”的提示,通过查看已安装的应用列表,确信我已经安装上了该应用,但是为什么会出现“你的手机上未安装应用程序”的提示信息呢?在网上搜了好久,找的解决方案也不适用我的app。最后还是自查代码吧。我在Manifest.xml中注册主activity的代码是这样写的这样的代码,在模拟器中运行没有问题原创 2016-01-20 12:00:53 · 17903 阅读 · 5 评论 -
关于notification的使用,setLatestEventInfo方法在新SDK不能使用的解决方法
setLatestEventInfo在新SDK中不能使用的解决方法原创 2016-01-23 22:07:16 · 18536 阅读 · 6 评论 -
WebView和加载html页面时无法调用alert的解决办法
webview 和 js 交互时无法调用 alert的解决方法原创 2016-01-13 21:50:13 · 4796 阅读 · 0 评论 -
开发框架学习篇之MVP
今天学习开发框架MVP,对比于MVC ,优点:activity,fragment,代码变得简洁优美,不像在MVC中,一个activity,fragment少则300,500行,多则几千行代码,便于后期维护。view层不再直接和model接触了,相应的逻辑(比如网络请求,数据运算)都交给 presenter,model层来做,view只负责界面绘制。方便写单元测试。缺点:从MVC转至MVP学原创 2016-03-23 23:05:59 · 539 阅读 · 0 评论 -
进程保活-踩坑篇
进程保活,特殊的需求:一个bind服务需要保活原创 2016-06-24 16:15:15 · 2425 阅读 · 0 评论 -
最简洁代码实现卡片翻转效果
之前做过通过camera类来实现3D翻转卡片的效果,但是代码量比较多。想想有没有其他的方法来实现这个,答案是有的,通过属性动画就可以实现。核心代码如下:Button btn_card;ImageView iv_3d;boolean flag = true;if (flag) { ObjectAnimator objectAnimator1 = ObjectAnima原创 2016-04-12 18:16:52 · 2070 阅读 · 2 评论 -
android打包之重叠包技术浅谈
一个功能要求A有B不能有, 在不大规模修改代码的情况下,该怎样解决……原创 2016-06-24 19:55:46 · 1458 阅读 · 0 评论 -
JNI入门学习笔记
最近因公司业务需要,将一部分逻辑代码从java移入JNI中。本着现学现用的精神,终于在deadline前完成交付。现记下此文作为我学习JNI过程中的点滴。废话不多说,直接开干搭建环境我用的开发工具是MAC,AS。关于安装NDK网上有很多方法,我用的是最懒的方法,如图 因为我这已经下载好了NDK,所以没有显示。 未下载NDK时会提示,是否下载,我是直接点击 load ndk让AS帮我下载好的。友原创 2016-08-08 20:01:09 · 919 阅读 · 2 评论 -
Atlas:手淘Native容器化框架和思考-玄黎
在刚刚过去的云栖大会上,手淘宣布其移动容器化框架Atlas将于2017年年初开源,对这个框架,在过去团队对外部做过一些分享,外界也一直对其十分关注,到现在它终于即将开源了。本文将介绍Atlas的设计思路和手淘对容器化、组件化和动态化上的思考,主要内容来自阿里巴巴资深技术专家倪生华(玄黎)在2016杭州云栖大会上的分享。Atlas是什么2013年,手淘航母战略的制定,带来转载 2017-01-18 10:39:52 · 504 阅读 · 0 评论 -
酷狗 Android App 插件化实施过程
什么是插件化框架 插件化框架可以在主程序不重新安装的情况下,针对单个业务模块进行加载达到模块更新的目的,整个加载更新过程,对用户来说也是无感知的。 正式因为这样,新需求比起传统更新方式覆盖率和覆盖速度都会更高和更快,对于大型开发团队,各个业务模块开发小组组也不需要再等所有组的需求开发完统一发布版本,发版本可以单独针对小组内单个功能发布了,有了这些优点才使得这1年来插件化转载 2017-01-19 10:43:12 · 1461 阅读 · 0 评论 -
VirtualAPK:滴滴 Android 插件化的实践之路
一、前言在 Android 插件化技术日新月异的今天,开发并落地一款插件化框架到底是简单还是困难,这个问题不同人会有不同的答案。但是我相信,完成一个插件化框架的 Demo 并不是多难的事儿,然而要开发一款完善的插件化框架却并非易事,尤其在国内,各大 ROM 厂商都对 Android 系统做了一定程度的定制,这更进一步加剧了 Android 本身的碎片化问题。滴滴出行在插件化上的转载 2017-01-19 11:08:41 · 755 阅读 · 0 评论 -
微信Android模块化架构重构实践
微信Android架构历史微信Android诞生之初,用的是常见的分层结构设计。这种架构简单、清晰并一直沿袭至今。这是微信架构的v1.x时代。图1-架构演进到了微信架构的v2.x时代,随着业务的快速发展,消息通知不及时和Android 2.3版本之前webview内存泄露问题开始突显。由于代码、内存、apk大小都在增长,对系统资源的占用越来越多,导致微信进程容易被系统回收。因此微信开始转向多进程架...转载 2018-03-26 08:17:44 · 450 阅读 · 0 评论