自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (2)
  • 收藏
  • 关注

原创 ANR优化实践

博客结构1.为什么设计ANR机制2.ANR是什么2.1 定义2.2 表象2.3 本质2.4 系统如何设计ANR机制2.5 ANR分类2.6 组件/事件ANR源码2.6.1 Activity ANR2.6.2 Boradcast ANR2.6.3 Service ANR2.6.4 ContentProvider AN2.6.5 Input ANR3.开发中如何避免ANR产生4.如何解决ANR问题4.1 拉取trace文件4.1.1 错误上报获取方式4.2 trace文件解析5.站在巨人肩膀用简单通俗易懂的

2023-03-26 23:25:25 454

原创 内存泄漏之一——引用链分析出发

从字节码层面看内存引用链

2022-09-23 13:17:07 660

原创 房地产思考——前海蛇口自贸区

前海自贸区

2022-09-12 23:35:17 691

原创 深圳房产之一——直播思考

房地产思考

2022-07-16 19:59:11 198

原创 性能优化之三——手机发热

手机发热问题分析与定位

2022-06-08 00:16:18 1867

原创 升维之十——品牌升维之34年只做冰淇淋

天冰、升级之道!

2022-05-01 12:30:58 153

原创 升维之九——愿景升维的钻石小鸟

一个大厂工程师眼中的钻石小鸟徐潇悟职场与创业经验!

2022-04-10 23:42:30 169

原创 升维之七——后疫情时代的酒店突围

博客架构1.案例2.发展3.思考1.刻己容人:改变自己、不断成长2.人生不仅有居安思危,更要有居危思进1.案例朗丽兹酒店–王宝2.发展2003 - 2012 酒店行业打拼2012- 2020 打造朗丽兹酒店2020-2022 线上新零售、用户第一再聚焦,针对女性客户差异化(1)关注消费新场景,推出泰国香虾(2)利用新技术,直播带货,员工卖货(3)定义新资源:重新定义企业与员工关系、企业与供应商关系、企业与用户关系(成为分销者)(4)共享新利益3.思考1.刻己容人:改变自己、

2022-04-05 20:57:31 206

原创 2022年阅读书籍清单

博客结构2022年4月2022.4.4 -- 升维.行动学院2022.4.11 -- 卓有成效的管理者.德鲁克2022年4月2022.4.4 – 升维.行动学院时间: 2022.4.4-2022.4.10升维是行动学院的经管类书籍,有沈毅师兄推荐。主要内容是各个公司企业应用行动学院的课程实现的升维。虽然有些卖课嫌疑,但是,对于各个领域的总结以及人生的思考还是很有借鉴意义!2022.4.11 – 卓有成效的管理者.德鲁克推荐: 王宝认为卓有成效的管理者,对于时间管理、团队管理和决策管理提供了非常有

2022-04-05 20:25:41 397

原创 升维之六——零售模式升维

零售事业实际上是大家认为比较难的,如何在零售业实现突破以及零售的专业知识,值得学习。其中的战略等,于司如此,于人何尝不是如此。

2022-04-05 19:52:43 234

原创 Activity启动模式之一——Flags实现启动模式

博客架构1.Flags组合实现四种启动模式1.singleTask启动模式activity启动模式比较基础,这里将梳理一下它在实际应用中所碰到的疑难点。1.Flags组合实现四种启动模式1.singleTask启动模式 Intent intent = new Intent(); intent.setClass(ThirdActivity.this,MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

2022-03-31 15:00:55 175

原创 JUC之二——Lock的原理解析

博客架构1.为什么推出锁?在jdk1.5,并发中新增了lock锁包,这也是保证线程安全性中比较重要的一点。今天就来把锁揉碎看它本质。1.为什么推出锁?

2022-03-27 21:50:55 229

原创 渲染机制原理之一——Surface & SurfaceFlinger

博客结构1.Surface & SurfaceFlinger2.Surface与SurfaceFlinger关系图3.渲染机制类图4.渲染机制交互图5.巨人肩膀Android 系统采用一种称为 Surface 的 UI 架构为应用程序提供用户界面。在 Android 应用程序中,每一个 Activity 组件都关联有一个或者若干个窗口,每一个窗口都对应有一个 Surface。有了这个 Surface 之后,应用程序就可以在上面渲染窗口的 UI。最终这些已经绘制好了的 Surface 都会被统一提交

2022-03-17 23:40:15 4156

原创 JUC之一——基础概念

博客架构1.JUC1.多核并发缓存架构2.内存模型3.内存模型的八大原子操作4.CPU缓存一致性协议解析5.指令重排序6.高并发下双重检测锁DCL指令引发的问题7.内存屏障8.巨人肩膀多线程无论是服务端还是客户端,都是核心模块。只知道线程池的用法和几个关键参数的含义,too young to simple,系统学习JUC的内容1.JUC在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类。主要包括三部分:1.多核并发缓存架构

2022-03-16 00:00:02 360

原创 性能优化之三——包体积优化大战

博客结构1.优化意义2.分析工具1.APK Analys2.重要参数诠释3.编包流程4.优化战法1.常规战法1.清理无用资源1.Lint工具2.开启shrinkResources去除无用资源3.删除无用的语言资源4.清理第三方库中冗余代码2.图片资源优化(减)1.只使用一套适配图(减)2.使用着色,减少图片(换)3.webp万能替换(换)4.shape2.进阶战法3.极致战法5.巨人肩膀在厂商东家的时候,每个版本要求包体积增长不能超过15%,当时的包体积大该是20来M,所以,每次增长的空间在3M左右,这个

2022-03-12 20:48:33 2650

原创 源码阅读网站工具

1、可以随意查询源码类网站AndroidxRef2、谷歌源码网站(无需翻墙)googlesource

2022-02-11 01:10:27 154

原创 沟通part5——做事有章法

博客架构1、面试实质2、面试外挂1、最大的特质2、价值观3、发生的改变3、团队融入锦囊1、给人帮忙2、请人帮忙3、先干为敬4、会议纪要5、工作周报1.为了帮领导把他的工作做好2.要用积极语气3.把领导最可能期望看到的写在最上面4.前一条做不到,赶快找领导5.周报的内容6.周报三个凡是1.凡是能分段就分2.凡是能做小标题就做3.凡是能列清单就列知道为何而战,也知道如何而战!前人的思考,我们的阶梯!1、面试实质人岗匹配2、面试外挂准备人生三个故事反复打磨、脱口而出1、最大的特质2、价值观相信什

2022-02-06 16:58:51 186

原创 沟通part3—活用反馈:沟通自如无障碍

博客架构1、感恩笔记本2、富兰克林效应3、马太效应3、强反馈公式1.闭环2.循环4、反馈分类1.总结型反馈2.启发型反馈3.请教型反馈5、真正的沟通1、感恩笔记本对于曾经的帮助给予及时反馈和长期反馈。目的:塑造口碑和利于二次帮助!2、富兰克林效应3、马太效应越被帮助的人越强、越强的人越容易被人帮助3、强反馈公式闭环+循环1.闭环凡事有交代、件件有着落、事事有回音。2.循环向上社交的不断反馈,不断将知识应用到生活和工作中。4、反馈分类1.总结型反馈您今天在会上说的关于XXX的方法,

2022-01-09 20:14:27 441

原创 沟通part2—巧用准备:消除沟通中的风险

如何在沟通中充分准备!...

2022-01-07 16:59:27 458

原创 框架层之一——AMS的前世今生

博客架构一、AMS是什么二、AMS功能三、AMS研究意义四、AMS启动四大组件流程一、Android系统启动流程五、巨人肩膀一、AMS是什么全称:ActivityManagerService,是SystemService系统服务中的重要服务之一。主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似。ActivityManagerService extends ActivityManagerNative implements Watchdog

2021-09-25 00:26:18 1479

原创 黔程似锦——2021国庆游攻略

攻略架构一、为啥选择贵州二、贵州知多少三、玩哪些?四、怎么玩?1 贵阳-甲秀楼2.安顺--黄果树瀑布五、行程安排六、巨人肩膀?一、为啥选择贵州走遍大地神州,醉美多彩贵州如果有人问你:“当今中国,哪个省基本保留了不被人打扰的美景及人文?”想必贵州是个上佳答案。如果你想远离喧嚣,就来贵州吧,她不会让你失望!以上是摘自博主的介绍,现在这个阶段实际上最想去的西藏、新疆,但是,考虑投入成本和不能自驾等问题,最后还是选择附近游的贵州。当然,贵州也一直对我也有吸引力,毕竟黄果树瀑布、西江千户苗寨、梵净山、黔东南苗

2021-09-11 18:13:30 345

原创 2021推荐书籍

博客结构一、创业类一、创业类1.毛泽东选集—毛泽东2.价值—张磊3.大败局—吴晓波4.流量池—杨飞5.腾讯传 —吴晓波6.蓝海战略—美.勒妮·莫博涅7.必然—凯文8.史蒂夫.乔布斯传 —乔布斯9.商战—外10.基业长青—詹姆斯.柯林斯11.硅谷之火—迈克尔12.从0到1 —彼得.蒂尔13.可复制的领导力—樊登14.穷爸爸富爸爸—罗伯特...

2021-09-09 22:12:36 97

原创 关于工作中的九个谎言--2021.9.8

博客结构1 团队优于公司2 用人之长,不盯人之短3 人们需要的是更多帮助和共同进步,而不是无建设行的批评4 真的存在工作和生活的平衡么?5 领导力是一个东西5.1 让你的长处变成拔尖人物5.2 放大你的尖子,让更多人能够看到你6 困惑观点:6. 1 最好的信息和情报能取得胜利6.2 最好的公司是向下传递意义1 团队优于公司公司的企业文化代表的公司对如何发展的思考或者说是口号,代表公司的发展方向。而能决定工作体验的是团队,更要关注团队是怎样的团队!团队中最为重要的就是团队长,团队长往往决定了工作氛

2021-09-08 22:10:54 212

原创 Gradle的入门-preview

博客结构1.前言2.构建工具1.描述2.发展3.AS中的gradle1.编译中的gradlew与gradle的命令区别2.project.gradle、moudle.gradle、setting.gradle的区别3.gradle的构建生命周期3.Gradle之Groovy1.groovy、gradle、jvm的关系2.groovy中的行话1.project.rootProject4.Gradle之打包用简单通俗的话来记录自己对Gradle的理解1.前言现在大家都只知道Android的构建工具是Gra

2021-07-03 17:18:35 171 1

原创 字符串算法之一——字符串反转

博客结构1.原题1.题目2.分析3.思路4.实现用简单通俗易懂的话来记录自己对数组算法的理解1.原题1.题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]2.分析3.思路1.定义一个长度m+n的数组inteArr,将每个字符串转化为Char[]

2021-06-12 23:47:03 160

原创 字符串算法之一——整数型字符串运算

博客结构1.原题1.题目2.分析3.思路4.实现用简单通俗易懂的话来记录自己对数组算法的理解1.原题1.题目给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:1. num1 和 num2 的长度小于110。2. num1 和

2021-06-12 12:06:18 406

原创 数组算法之二——双指针法

博客结构1.原题1.题目2.分析1.分析3.思路4.代码用简单通俗易懂的话来记录自己对数组算法的理解1.原题1.题目给定n个非负整数a1,a2,…,an,其中每个数字表示坐标(i, ai)处的一个点。以(i,ai)和(i,0)(i=1,2,3…n)为端点画出n条直线。你可以从中选择两条线与x轴一起构成一个容器,最大的容器能装多少水?注意:你不能倾斜容器输入 [1,8,6,2,5,4,8,3,7]输出: 492.分析1.分析要求面积最大,只要做个遍历,把所有组合求出来即可,但是,这样的

2021-06-11 23:47:33 159

原创 数组算法之一——有序数组去重

博客结构1.原题1.题目2.分析1.分析3.思路4.代码5.巨人肩膀用简单通俗易懂的话来记录自己对数组算法的理解1.原题1.题目给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?示例 1:输入:nums = [1,1,1,2,2,3]输出:5, nums = [1,1,2,2,

2021-06-11 18:23:18 1287

原创 算法入门之一——时间复杂度与空间复杂度

博客结构1.算法1.定义2.核量指标2.时间复杂度1.表示方式2.推导过程3.分类常数阶O(1)对数阶O(logN)线性阶O(n)线性对数阶O(nlogN)平方阶O(n²)立方阶O(n³)K次方阶O(n^k)指数阶(2^n)3.空间复杂度定义分类O(1)O(n)O(n^2)4.巨人肩膀用简单通俗易懂的话来记录自己对算法的理解1.算法1.定义算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很

2021-06-05 21:41:42 198 1

原创 动态规划算法之一——动态规划入门

博客结构1.动态规划算法是什么1.动态规划思想2.动态规划核心2.动态规划算法局限3.动态规划算法应用场景4.站在巨人肩膀用简单通俗易懂的话来记录自己对动态规划算法的理解1.动态规划算法是什么1.动态规划思想动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能

2021-06-04 23:57:15 264

原创 流畅度优化之一——Vsync的介绍

安卓系统中有 2 种 VSync 信号:1、屏幕产生的硬件 VSync: 硬件 VSync 是一个脉冲信号,起到开关或触发某种操作的作用。2、由 SurfaceFlinger 将其转成的软件 Vsync 信号:经由 Binder 传递给 Choreographer。...

2021-06-03 00:48:39 8150 2

原创 启动优化之一——启动分析及优化方案

博客结构1.前言2.启动类型1.冷启动2.温启动3.热启动3.冷启动流程3.冷启动分析工具及方法1.命令行2.代码打印3.高清摄像机4.通用优化方案1.前置2.并发3.延迟5.业务优化方案1.原理6.站在巨人肩膀用简单通俗易懂的话来记录自己对对象存活判断算法的理解1.前言一个应用的性能如何,冷启动是个重要的衡量指标,毕竟用户第一次使用应用时,多久能进入页面(包括首页、启动页、广告页等),是用户的第一感官。对于一般应用,有启动页和广告页,对启动速度的要求相对于来说降低了一些,毕竟,进来就是启动页,只是时

2021-05-30 18:51:04 1403 7

原创 垃圾回收器之一——深入理解对象存活算法

博客结构1.前言2.引用计数法1.原理2.优点3.缺点4.优化1.同步周期回收2.智能指针3.可达性分析4.站在巨人的肩膀用简单通俗易懂的话来记录自己对对象存活判断算法的理解1.前言1.垃圾回收是一个多数编程语言中都带有的内存管理机制。与非托管性语言相反:C, C++ 和 Objective C,用户需要手动收集内存,带有 GC 机制的语言:Java, javaScript 和 PHP 可以自动管理内存。2.在Java中提起JVM,总是不能避免垃圾回收机制,而垃圾回收机制中最为重要的第一步就是判断对

2021-05-24 17:45:21 354 10

原创 JVM之一——对象的创建和内存分布

博客结构1.背景2.内容脑图3.JVM对象1.JVM对象创建2.JVM对象内存3.JVM对象访问4.JVM的逃逸技术用简单通俗的话来记录自己对架构的理解1.背景对于android工程师,Dalvik、ART虚拟机是进阶必走之路,那么,这两种虚拟机也都是JVM,要了解它们,JVM的入门必不可少。2.内容脑图对于为啥学习、设计它的原因、JVM发展历史就不做具体的阐述,内存区域的详细讲解,参考:https://blog.csdn.net/FullStackDeveloper/article/deta

2021-05-18 00:13:22 170

原创 数据库设计之二——复合语句

博客结构1.条件复合语句1.limit、offset2.实际应用用简单通俗的话来记录自己对架构的理解1.条件复合语句1.limit、offsetlimit 语法有两种写法s一个参数 : limit x其中x是一个整数,表示返回x条目记录。2.两个参数: limit x , y 其中x , y 都是整数,表示跳过x 条记录,返回 y 条记录,即 LIMIT <skip>, <count>此外limit 还与offset关键词结合,语法是: limit x o

2021-05-17 12:57:18 210

原创 内存优化之三——内存泄漏监控工具原理分析

https://zhuanlan.zhihu.com/p/73675401https://blog.csdn.net/import_sadaharu/article/details/81407728https://blog.csdn.net/braintt/article/details/99685243https://www.jianshu.com/p/261e70f3083fhttps://zhuanlan.zhihu.com/p/111436353

2021-05-16 17:14:53 586

原创 内存优化之二——Bitmap优化

博客结构1.内存增长分析(1).内存增长问题定位2.Bitmap详解(1).Bitmap内存申请3.Bitmap的优化4.站在巨人肩膀用简单通俗的话来记录自己对架构的理解1.内存增长分析(1).内存增长问题定位采用adb shell dumpsys meminfo + AS Profiler工具结合可以从App Summary中看到,现在内存中占用最多的是NativeHeap。然后是Graphics,最后是Code。Graphics是GL这块的内存,一般对于应用层没有更好的办法优化,Code的代

2021-05-09 20:29:35 450 5

原创 内存监控与优化

博客结构1.内存监控(1).方案(2).计算指标2.内存优化(1).设备分级用简单通俗的话来记录自己对架构的理解1.内存监控经常有线上用户反馈应用卡顿,而为了判断是否是内存超过了85%的最大限制,GC变得更加频繁,容易造成OOM和卡顿,所以,做了内存快照,也就是每5分钟进行内存快照一次。(1).方案用户在前台时,每5分钟采集一次PSS等进行内存快照。(2).计算指标(a)触顶率:可以反映 Java 内存的使用情况,如果超过 85% 最大堆限制,GC 会变得更加频繁,容易造成 OOM 和卡顿。

2021-04-30 11:40:18 214 2

原创 一篇深入理解字节码文件

博客结构0.前言:你所不知道JVM的野心1.为什么要学习字节码文件2.字节码文件的本质3.JVM内存回收类型及触发时机4.日常代码的启示0.前言:你所不知道JVM的野心小时候天真的以为JVM就是专门为Java语言先天研发的,还是too young to simple,JVM的野心远远不止于此。在此,纠正几个概念:1.字节码文件:JVM支持运行的二进制格式文件由此可知,只要是编译成字节码文件的预研,JVM统统的运行。这样其实就不仅仅达到了一次编译,处处运行的跨平台功能,更是达到的跨语言的能力。2.J

2021-04-29 20:47:58 934

原创 内存优化之一——内存优化工具参数详解

博客结构1.背景2.内存查看方式(1).AS-Profiler(1).运行框-命令行3.内存参数(0)PSS(1)Java heap(2)Native Heap(3)Code(4)Stack(5)Graphics(6)Private Other(7)System(8)其它参数4.站在巨人肩膀上用简单通俗的话来记录自己对架构的理解1.背景在一般的应用中,对前台进程和后台进程的内存要求不高。但是,现在的应用作为系统应用,在内置的时候,会考虑在内置进手机时,更何况现在是常驻进程时,这时的后台进程就显得弥足珍

2021-04-22 12:36:31 2040

jad_exe.rar

用于字节码的反编译

2021-03-06

java反编译超简易第三方工具jad.exe

用于class文件的批量以及单个反编译,从而可以看到java源文件

2019-09-04

空空如也

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

TA关注的人

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