自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BruceHurrican的专栏

一个coder的学习成长日记

  • 博客(44)
  • 资源 (5)
  • 收藏
  • 关注

转载 微信Android模块化架构重构实践

微信Android架构历史微信Android诞生之初,用的是常见的分层结构设计。这种架构简单、清晰并一直沿袭至今。这是微信架构的v1.x时代。图1-架构演进到了微信架构的v2.x时代,随着业务的快速发展,消息通知不及时和Android 2.3版本之前webview内存泄露问题开始突显。由于代码、内存、apk大小都在增长,对系统资源的占用越来越多,导致微信进程容易被系统回收。因此微信开始转向多进程架...

2018-03-26 08:17:44 417

转载 阿里巴巴正式开源自研动态非侵入AOP解决方案:JVM-Sandbox

InfoQ原创 徐冬晨 写在前面随着软件部署规模的扩大,系统的功能的细化,系统间耦合度和链路复杂度不断加强。若要继续保持现规模系统的稳定性,需要实现并完善监控体系、故障定位分析、流量录制回放、强弱依赖检测、故障演练等支撑工具平台。出于对服务器规模和业务稳定性的考量,这些配套工具平台要具备对目标应用具有无侵入、实时生效、动态可插拔的特点。要实现这些,多少都会触及到

2018-01-26 20:38:28 6221

转载 广研Android卡顿监控系统

实现背景应用的使用流畅度,是衡量用户体验的重要标准之一。Android 由于机型配置和系统的不同,项目复杂App场景丰富,代码多人参与迭代历史较久,代码可能会存在很多UI线程耗时的操作,实际测试时候也会偶尔发现某些业务场景发生卡顿的现象,用户也经常反馈和投诉App使用遇到卡顿。因此,我们越来越关注和提升用户体验的流畅度问题。已有方案在这之前,我们将反馈的常见卡顿场景,或测试过程中常见的测试场景使用

2018-01-19 15:19:34 1160

原创 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 564

转载 当技术为组织所累时怎么办?将你的组织架构旋转90度!

当技术为组织所累时怎么办?将你的组织架构旋转90度!原创 2017-10-12 杨波 InfoQ作者|杨波编辑|小智作者近期针对企业数字化和架构转型思考后陆续写了三篇文章,这篇是第二篇,主题专注组织架构转型,前一篇称为《企业的组织架构是如何影响技术架构的?》,主题是建立背景上下文 (background),最后一篇称为《大规模生产级微服务的关键支撑技术》,主题关于微服务架构和

2017-10-16 14:27:47 842

原创 《算法图解》学习笔记

最近在学习《算法图解》,写下此文当作学习笔记了。大O可以比较操作数,指出算法运行时间的增速。算法运行时间是从其增速的角度度量的。1.O(log n), 也叫对数时间,这样的算法包括二分查找法 2.O(n), 也叫线性时间,这样的算法包括简单查找法 3.O(n * log n), 快速排序——速度较快 4.O(n^2),选择排序——速度较慢 5.O(n!), 算法非常慢二分查找法需要数组或列表

2017-08-01 15:56:39 717

转载 基于Android Architecture Components的应用架构指南

这是一篇 Android Architecture Components 的简单使用指南,目的是向大家介绍这么一种新的架构方案。Android Architecture Components 是一个由官方推出的新库,它能够帮助你去构建一个健壮,易测,可维护的应用。目前它还未正式发布(Now available in preview)。所以抱着强烈的好奇心去了解了一下。本文译自 Guide

2017-07-10 11:19:17 1097

原创 如果优雅地处理多个请求并在请求结束后统一处理

如何优雅地处理多个请求并在请求结束后统一处理前不久我接到一个需求,首页更新的数据是从3个接口获取的,三个接口获取到的数据后再刷新界面,大家可以脑补X东,X宝的app首页,屏幕从上到下,上面是banner区,用来展示促销商品之类的广告,中间是几个按钮区,方便用户分类进入相应的模块,如XX超市,XX家电,XX生鲜,话费充值之类的,下面是推荐商品展示区。我司app也是这种大众脸。开发时,后台童鞋针对首页数

2017-06-27 13:55:13 8144 2

转载 Android GC原理探究

前言想写一篇关于android GC的想法来源于追查一个魅族手机图片滑动卡顿问题,由于不断的GC导致的丢帧卡顿的问题让我们想了很多方案去解决,所以就打算详细的看看内存分配和GC的原理,为什么会不断的GC,GC ALLOC和GC COCURRENT有什么区别,能不能想办法扩大堆内存减少GC的频次等等。1、JVM内存回收机制1.1 回收算法标记回收算法(Mark and

2017-05-19 14:37:08 840

原创 快速从手机中取出调试日志并过滤关键字段

现在 app 大部分在 debug 和 release 阶段都会在手机本地储存日志类文件,最近我在开发某个功能模块时,需要获取相应的日志信息,用 AS 的 logcat 已经达不到要求(因为日志太多了)并且 logcat 的日志不能在 AS上保存到本地。只能通过打印日志到手机 SD卡上的文件,导出后再分析。一般的操作流程是 在获取信息的模块处打印日志,并将日志信息设置成保存到 SD卡上,编译安装,触

2017-04-12 16:01:32 1161

转载 FlexboxLayout帮助您完成聪明的UI布局

去年我们在 Google I/O 上发布了 ConstraintLayout,使得您在构建复杂布局的同时能够让视图层级得到精简。它在 Android Studio 的 Visual Layout Editor 中也同样可以使用。 与此同时,我们开源了 FlexboxLayout,使得 Android 里的 CSS Flexible Layout 模块也能拥有同样强大

2017-04-05 10:14:52 719 4

转载 Android进程保活招式大全

作者:腾讯——张兴华目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 Android 进程拉活进行一个总结。Android 进程拉活包括两个层面:A. 提供进程优先级,降低进程被杀死的概率B. 在进程被杀死后,进行拉活本文下面就从这两个方面做一下总结。1. 进程的优先级Android 系统将尽量长时间地保

2017-03-22 16:15:23 424

原创 从 apk 瘦身的角度来比较picasso、glide、volley、cube、fresco、UIL

从体积与方法数的角度比较常用图片库。

2017-03-22 14:48:41 1498

转载 微信团队原创分享:Android内存泄漏监控和优化技巧总结

前言对于Android平台的应用程序来说,内存优化一直是个热门话题,与传统PC应用程序不同,Android上的应用一旦出现各种异常时系统默认会以最严厉的“崩溃”方式反馈给用户,如果处理不当,将严重影响用户体验。丛所周之,移动设备的软硬件资源无法与传统PC相提并论(至少目前是这样),因而开发人员在编写应用时,需要有更多技巧、更精深的技术来应对各种局面。这其中尤以内存OOM(内存溢出)

2017-03-21 14:32:01 2638

原创 悬浮窗权限突破及兼容性处理

突破国内第三方ROM 悬浮窗权限。并解决部分三星、SONY手机无法处理触摸事件的问题等踩坑之路。

2017-03-20 17:27:36 3020

原创 我是怎样优化 Android 工程中的 Enum的

学过 Java 的人都知道,enum 可以方便的用于参数校验,类型检测,常量声明等场景。之前我接手维护一个app工程,发现其中代码有很多 enum,此时功能不多的 app 的安装包则高达 20+M,急需要 apk瘦身。除了通用的图片压缩,降低分辨率来瘦身外。针对代码层面,我还进行了,enum 改造,改一点测一点,逐步将工程中的 enum 全部替换掉。写下此文全当是个总结吧。AA.javapublic

2017-03-17 10:45:32 507

原创 统计 apk 方法数和代码行数小工具

商业 app, 随着业务不停的迭代后,app 体积会由最初的几 M 增加到几十至上百 M,过大的安装包,不利于用户下载安装,那么 apk 瘦身就会被提上日程。本篇文章不会详细介绍怎样瘦身,这里我向大家推荐的两款工具意在于帮助开发人员直观看到apk 中方法数量,代码行数。tool 1:statistic 插件,安装方法 AS Preferences-Plugins-Browse repositorie

2017-03-16 11:25:18 4426

原创 进程保活-探索篇之1像素保活

背景:从产品的角度来说,任何一个 app 的 PM都希望自己的 app 在用户手机中的留存率高些,之前我接触到的一个业务需求也是如此,要求提升app 在国内第三方厂商 ROM中的存活率。如前篇所述踩坑篇,保活策略只在 android 原生系统中起作用,在国内第三方厂商 ROM中是没有效果的。为了提高 app 在第三方 ROM中的存活率,调研了一些方法,最终选择 某移动社交 app的 1像素保活方案,

2017-03-13 15:04:50 7453 5

原创 adb devices 返回 XXX offline 的解决办法

设备: mac pro 8G 256SSD, moto X, genymotion今天打开电脑,在 android studio 的 android monitor 中查看,moto x 和 genymotion 都显示 XXX offline 状态,在终端中输入 adb devices 返回 各个 device 的状态也是 offline。解决办法如下:moto x 拨掉 usb 线后重新连接;

2017-02-14 15:04:26 14261

转载 JVM 初探:内存分配、GC 原理与垃圾收集器

JVM内存的分配与回收大致可分为如下4个步骤: 何时分配 -> 怎样分配 -> 何时回收 -> 怎样回收.除了在概念上可简单认为new时分配外, 我们着重介绍后面的3个步骤:I. 怎样分配- JVM内存分配策略对象内存主要分配在新生代Eden区, 如果启用了本地线程分配缓冲, 则优先在TLAB上分配, 少数情况能会直接分配在老年代, 或被拆分成标量类型在栈上分配(JIT优化

2017-02-03 16:25:44 855

转载 人人车Android客户端架构演进实录

前言对于大多数创业公司而言, 初版开发时采用的简单架构,在历经数次快速迭代后,已经成为了一个”大泥球”(源于Brian Footer和Joseph Yonder的论文《大泥球》, 定义: 一大片随意构造,杂乱无章,凌乱,任意拼接,毫无头绪的代码丛林), 如下问题存在于当前的架构中:业务逻辑混杂在平台实体中,造就了代码量庞大的Activity和Fragment。本应是全局级别

2017-02-03 11:23:39 1464

转载 浅谈我对DDD领域驱动设计的理解

从遇到问题开始当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决。比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品。所以,自然而然就想到要做一个普通电商系统,用于实现在线销售自己企业产品的目的。再比如,我是一家互联网公司,公司有很多系统对外提供服务,面向很多客户端设备。但是最近由于各种原因,导

2017-01-22 11:19:02 678

转载 VirtualAPK:滴滴 Android 插件化的实践之路

一、前言在 Android 插件化技术日新月异的今天,开发并落地一款插件化框架到底是简单还是困难,这个问题不同人会有不同的答案。但是我相信,完成一个插件化框架的 Demo 并不是多难的事儿,然而要开发一款完善的插件化框架却并非易事,尤其在国内,各大 ROM 厂商都对 Android 系统做了一定程度的定制,这更进一步加剧了 Android 本身的碎片化问题。滴滴出行在插件化上的

2017-01-19 11:08:41 747

转载 酷狗 Android App 插件化实施过程

什么是插件化框架    插件化框架可以在主程序不重新安装的情况下,针对单个业务模块进行加载达到模块更新的目的,整个加载更新过程,对用户来说也是无感知的。    正式因为这样,新需求比起传统更新方式覆盖率和覆盖速度都会更高和更快,对于大型开发团队,各个业务模块开发小组组也不需要再等所有组的需求开发完统一发布版本,发版本可以单独针对小组内单个功能发布了,有了这些优点才使得这1年来插件化

2017-01-19 10:43:12 1449

转载 Atlas:手淘Native容器化框架和思考-玄黎

在刚刚过去的云栖大会上,手淘宣布其移动容器化框架Atlas将于2017年年初开源,对这个框架,在过去团队对外部做过一些分享,外界也一直对其十分关注,到现在它终于即将开源了。本文将介绍Atlas的设计思路和手淘对容器化、组件化和动态化上的思考,主要内容来自阿里巴巴资深技术专家倪生华(玄黎)在2016杭州云栖大会上的分享。Atlas是什么2013年,手淘航母战略的制定,带来

2017-01-18 10:39:52 495

原创 码农的2016小结

作为一个码农,除了上班、加班的时间外,最愿意做的事情就是看书和料理了。认真的做一顿饭并享用之,是对忙碌的自己最大的尊重。作为一个能吃的码农,我很能吃,但是我并不懒,ʅ(´◔౪◔)ʃ 。一年之中,学了几种料理,包括主食、肉、蛋的做法,基本满足我的的日常需要了。 “书,是人类进步的阶梯”——高尔基16年读完了几本书,这里列举下。《Effect Java》(中文版)——讲述 coding 经验的书

2017-01-03 15:49:19 841

原创 我是怎样通过类比来学习 python2 的

在学习 python 之前我对 python 是个小白。在工作中用到好多第三方的工具(如 freeline),这些工具中就有好多 .py 的文件, 为了弄懂这些文件里的逻辑才来学习python 的,当前 freeline 采用的是 python2版本的,所以我是以 python2来学习的。PS: 我是做安卓的,对 Java 什么知道的多些,python 就……T_T环境搭建首先交待下我的学习工具,m

2016-12-09 17:00:58 404

原创 JNI入门学习笔记

最近因公司业务需要,将一部分逻辑代码从java移入JNI中。本着现学现用的精神,终于在deadline前完成交付。现记下此文作为我学习JNI过程中的点滴。废话不多说,直接开干搭建环境我用的开发工具是MAC,AS。关于安装NDK网上有很多方法,我用的是最懒的方法,如图 因为我这已经下载好了NDK,所以没有显示。 未下载NDK时会提示,是否下载,我是直接点击 load ndk让AS帮我下载好的。友

2016-08-08 20:01:09 905 2

原创 关于重叠包技术在jenkins打包时报错的解决方案

转载请注明出处: http://blog.csdn.net/brucehurrican/article/details/51778319最近公司项目需要进行部分业务模块的抽离,目前我在项目中采用的是重叠包技术,这样我和同事用AS开发时可以通过切换buildtype来进行不同业务模块的切换,编码,打包。坑点:打包时,应根据需要的业务模块(即buildtype对应的文件夹)来选择相应的

2016-06-28 21:04:05 1903

原创 as 编译时提示error please select android sdk

在做项目时协同开发时遇到的问题。 更新工程后编译提示该错误。 错误原因是,有人上传了修改的.iml文件,此处为app.iml将 改成了 导致报错。 修改方法,将jdkName改回原来即可。一般在多人协同开发时,.iml文件不要频繁上传,每个人的设置不同都有可能导致.iml文件发生变化。并且,一旦出现此错误定位非常困难。这个项目出现此问题时,我通过error信息查看我的 andr

2016-06-24 20:27:25 32716 8

原创 android打包之重叠包技术浅谈

一个功能要求A有B不能有, 在不大规模修改代码的情况下,该怎样解决……

2016-06-24 19:55:46 1438

原创 进程保活-踩坑篇

进程保活,特殊的需求:一个bind服务需要保活

2016-06-24 16:15:15 2407

原创 最简洁代码实现卡片翻转效果

之前做过通过camera类来实现3D翻转卡片的效果,但是代码量比较多。想想有没有其他的方法来实现这个,答案是有的,通过属性动画就可以实现。核心代码如下:Button btn_card;ImageView iv_3d;boolean flag = true;if (flag) { ObjectAnimator objectAnimator1 = ObjectAnima

2016-04-12 18:16:52 2048 2

原创 开发框架学习篇之MVP

今天学习开发框架MVP,对比于MVC ,优点:activity,fragment,代码变得简洁优美,不像在MVC中,一个activity,fragment少则300,500行,多则几千行代码,便于后期维护。view层不再直接和model接触了,相应的逻辑(比如网络请求,数据运算)都交给 presenter,model层来做,view只负责界面绘制。方便写单元测试。缺点:从MVC转至MVP学

2016-03-23 23:05:59 534

原创 android studio 运行报错 W/ dalvikvm threadid=1 thread exiting with uncaught exception group=0x41c57c50

出现这种错误网上提供的解释是 启动app时用到的activity,service,没有在manifest中声明,有的说是相应的类型转换出错,但是这些解释提供的解决方案都解决不了上面那个问题,最后,通过自查代码发现,工程中用到了注解view的jar包(butterknife),这个包的使用需要打开相应的设置,操作如下:将 enable annotation process

2016-03-14 18:28:05 5182

原创 更新Win10后genymotion启动失败的解决方法

win10 启动genymotion出现 unable to start the virtual device的错误及解决方法

2016-02-16 21:32:54 1321

原创 关于notification的使用,setLatestEventInfo方法在新SDK不能使用的解决方法

setLatestEventInfo在新SDK中不能使用的解决方法

2016-01-23 22:07:16 18507 6

原创 打开应用时出现“你的手机上未安装应用程序”--实际上该应用已经安装的解决方案

最近我在做开发时,连接我的手机部署好应用时,点击桌面图标出现“你的手机上未安装应用程序”的提示,通过查看已安装的应用列表,确信我已经安装上了该应用,但是为什么会出现“你的手机上未安装应用程序”的提示信息呢?在网上搜了好久,找的解决方案也不适用我的app。最后还是自查代码吧。我在Manifest.xml中注册主activity的代码是这样写的这样的代码,在模拟器中运行没有问题

2016-01-20 12:00:53 17784 5

转载 Android性能优化之加快应用启动速度

减少app启动时间,提高UX

2016-01-18 18:26:33 893

转载 UI性能测试

好文章,mark一下 前言设计师,开发人员,需求研究和测试都会影响到一个app最后的UI展示,所有人都很乐于去建议app应该怎么去展示UI。UI也是app和用户打交道的部分,直接对用户形成品牌意识,需要仔细的设计。无论你的app UI是简单还是复杂,重要的是性能一定要好。UI性能测试性能优化都需要有一个目标,UI的性能优化也是一样。你可能会觉得“我的app加载很快”很重要,但我...

2016-01-15 16:56:42 2689 1

代码统计工具SourceMonitor

代码统计工具,支持多种格式的语言文件,附有说明文档

2014-07-03

代码统计工具SourceCounter

代码统计工具,支持多种格式的语言文件,中文操作界面,支持成本估算

2014-07-03

代码统计工具linecount

代码统计工具,支持多种格式的代码,支持统计SQL编写的代码。

2014-07-03

代码统计工具附教程

偌统计工具,支持多种格式的代码统计,附有帮助说明文档。

2014-07-03

代码统计工具中文界面

支持多种格式的代码统计,中文操作界面,支持成本花费统计

2014-07-03

空空如也

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

TA关注的人

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