自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Android 开发架构

热爱技术,热爱分享,加油,孤独的编程人

  • 博客(15)
  • 收藏
  • 关注

原创 探索 App 秒开的秘密 —— 启动性能优化

提高程序的启动速度意义重大,很显然,启动时间越短,用户才越有耐心等待打开这个 App 进行使用,反之启动时间越长,用户则越有可能来不及等到 App 打开就已经切换到其他 App 了。程序启动过程中的那些复杂错误的操作很可能导致严重的性能问题。Android 系统会根据用户的操作行为调整程序的显示策略,用来提高程序的显示性能。例如,一旦用户点击桌面图标,Android 系统会立即显示一个启动窗...

2019-12-31 20:18:54 484

原创 Android悬浮窗的一种实现

本文以业务应用为出发点,从零开始抽象一个浮窗工具类,它用于在任意业务界面上展示悬浮窗。它可以同时管理多个浮窗,而且浮窗可以响应触摸事件,可拖拽,有贴边动画。文中实例代码使用 kotlin 编写,kotlin 系列教程可以点击:https://juejin.im/post/5cc97780e51d453a7f5ece32效果如下:显示浮窗原生ViewManager接口提供了向窗口添加并操...

2019-12-30 16:54:10 1847 1

原创 我凭借这份pdf拿下了字节跳动、腾讯、京东金融等大厂的offer

关于程序员,除了做项目来提高自身的技术之外,还有一种提升自己的专业技能就是:多!看!书!小编整理出一篇Android进阶架构师之路的核心知识,同时也是面试时面试官必问的知识点,篇章也是包括了很多知识点,其中包括了有基础知识、Java知识点汇总、Android知识点汇总、Android框架体系架构、性能调优、微服务、NDK开发 、高级UI、插件化、设计模式、组件化、热修复、数据结构等等由...

2019-12-27 21:58:52 549

原创 网络性能优化那些事

移动互联网时代,用户对网络越来越依赖。虽然网络环境在逐渐变好,但也对网络的应用提出了更高的要求,同时开发人员对网络的重视度却在下降。确实 WiFi 场景下用户的网络质量变好了,而且用户对网络流量消耗的敏感度也在下降。由于对网络问题的忽视,在网络情况不好的情况下,用户体验会极度下降,这时网络性能优化变得尤为重要。作为一名移动开发者,面对复杂多变的移动网络我们该如何去优化呢?优化哪些方面?一个数...

2019-12-25 17:29:54 661 1

原创 Android 日志工具

最近项目开发中,遇到一个痛点:项目模块较多,不同日志混合在一起;出现线上问题时,所有日志信息混合在一起,定位困难。为解决这个问题,有了这个工具。这个工具有以下作用:开发模式debug 为 true 时,打印在控制台,同时打印到文件;发版模式debug 为 fase 时,只打印到文件;方便日志上传 支持日志压缩上传缓存文件 区分模块 支持不同功能模块,日志打印到不同文件中;一、使用举...

2019-12-24 21:23:24 289

原创 Android Studio中竟然还能加入一个程序员鼓励师

/   前言   /Android Studio是我们Android开发的标准IDE,同时它也是Flutter开发的推荐IDE。工欲善其事必先利其器,想要爽心悦目地写代码,首先需要打造一个好看又能打的开发环境。Android Studio安装之后的默认字体太小,Logcat显示区的日志并不显眼,三种自带主题(Darcula、High contrast、In...

2019-12-23 21:35:12 421

原创 Android 一些值得你深入的细节 | Window 篇

1WindowWindow是个抽象类,PhoneWindow是Window唯一的实现类。PhoneWindow像是一个工具箱,封装了三种工具:DecorView、WindowManager.LayoutParams、WindowManager。其中DecorView和WindowManager.LayoutParams负责窗口的静态属性,比如窗口的标题、背景、输入法模式、屏幕方向等等。W...

2019-12-18 16:53:29 291

原创 关于电量性能优化的总结

耗电设备手机各个硬件模块的耗电量是不一样的,有些模块非常耗电,而有些模块则相对显得耗电量小很多。电量消耗的计算与统计是一件麻烦而且矛盾的事情,记录电量消耗本身也是一个费电量的事情。唯一可行的方案是使用第三方监测电量的设备,这样才能够获取到真实的电量消耗。屏幕当设备处于待机状态时消耗的电量是极少的,以 Nexus 5 为例,打开飞行模式,可以待机接近 1 个月。可是点亮屏幕,味着系统的各组件...

2019-12-17 16:59:20 842

原创 Android APK资源加载流程

概述我们在Activity中访问资源(图片,字符串,颜色等)是非常方便的,只需要getResources()获取一个Resources对象,然后就可以访问各种资源了,那这些资源到底是怎么被加载的呢?下面我们就分析一下资源加载机制App启动流程首先我们回顾一下App启动流程,还不了解的可以看我之前写的这篇文章首先是点击App图标,此时是运行在Launcher进程,通过ActivityMa...

2019-12-13 20:25:56 414 1

原创 使用揭露动画,让你的应用特效更进一步!

/   前言   /完整叫法应该是圆形揭露动画,下文简称揭露动画,因为 Android 系统中只提供了这一种圆形的(Circular)揭露动画!所谓揭露动画,就是一种用于 View (之间),甚至界面之间的特殊过渡动画效果。AndroidPlatform 的 android.view 包下有个 ViewAnimationUtils 类,这是使用系统所提...

2019-12-12 15:42:55 192

原创 在Flutter中实现“验证码倒计时”的功能

/   前言   /好久不见了,文章有一段时间没有更新了,最近一直在沉迷工作无法自拨。上周,应公司号召以及上次Google大会中Flutter宣讲的感染,计划将公司新项目采用Flutter技术实现。大概花了几天熟悉了一下Flutter基础语法和结构组成,便着手开始项目的搭建和基础模块功能开发,毕竟只有通过实战才能加快新技术的熟悉和“消化”。说到验证码功能,...

2019-12-11 15:38:35 765 1

原创 Kotlin中的 lateinit 和 by lazy

lateinit 和 lazy 是 Kotlin 中的两种不同的延迟初始化的实现lateinit 只用于变量 var,而 lazy 只用于常量 vallazy 应用于单例模式(if-null-then-init-else-return),而且当且仅当变量被第一次调用的时候,委托方法才会执行。...

2019-12-06 15:10:34 530

原创 史上最全 Java 中各种锁的介绍

锁的分类介绍乐观锁与悲观锁锁的一种宏观分类是乐观锁与悲观锁。乐观锁与悲观锁并不是特定的指哪个锁(Java 中也没有那个具体锁的实现名就叫乐观锁或悲观锁),而是在并发情况下两种不同的策略。乐观锁(Optimistic Lock)就是很乐观,每次去拿数据的时候都认为别人不会修改。所以不会上锁。但是如果想要更新数据,则会在更新之前检查在读取至更新这段时间别人有没有修改过这个数据。如果修改过,则...

2019-12-05 17:52:09 152

原创 关于Android屏幕亮度的一个需求

最近遇到一个需求:在进入Act的时候,将屏幕亮度调整为最亮。然后当用户自己去调整屏幕亮度的话,当前设置失效,并跟随系统的亮度。怎么修改屏幕亮度?直接上代码 /* * 调整当前Act的亮度,仅作用于当前Act范围0-1f * */ public void setActivityBrightness(float paramFloat) { Wi...

2019-12-04 15:33:09 212

原创 再谈数据结构,LinkedHashMap的小秘密都在这里

前言LruCache本质就是在维护一个LinkedHashMap,具体为什么是LinkedHashMap而不是其他对象,我们通过以下几个问题来解释原因。LinkedHashMap是个什么东西?LinkedHashMap是干什么用的?LinkedHashMap怎么用?LinkedHashMap的原理是什么?怎么实现的?正文LinkedHashMap是个什么东西?LinkedHas...

2019-12-02 15:08:59 201 1

空空如也

空空如也

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

TA关注的人

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