Android高级架构的博客

Android架构师群;701740775 加群可以免费领取一份Android高级技术大纲,和系统进阶视频。备注csdn...

阿里高级Android工程师技术多牛逼?这些你掌握了多少?

前言 从入冬开始,似乎最多听到的就是寒冬,裁员这些词了。 而这调侃式的背后,包含了包含开发人员的心酸。很多做Android开发的朋友跟我表示,工作丢了,到处跑面试,充满了茫然。 而在职的也很多朋友也都心惊胆战的生怕下一个被裁的就是自己。又鉴于是年底,各种加工赶项目到半夜。最没人情味的是,还没...

2019-01-21 17:43:42

阅读数:13

评论数:0

Android进阶;EventBus框架初解

EventBus其实解决了这样几个问题:保存订阅者、发布事件、切换线程、粘性事件 保存订阅者 在register(this)时,处理运行时注解,根据this找到类和类中的方法,根据方法的Subscribe注解找到订阅事件的那些方法。 从Subscribe注解中找到指定的线程、优先级、粘滞等; ...

2019-01-21 17:41:11

阅读数:3

评论数:0

从设计角度理解Activity切换

Activity的切换过程其实是老生常谈了,基本上就是两个App和AMS利用Bindler互相通信,进行跨进程的调用,详细代码过程可以看罗升阳的博客。 但是从设计角度来看这个过程,会发现很多有意思的细节,在这里简单整理一下。 基本切换流程 启动: 发起App中跳转Activity的代码 --&...

2019-01-21 17:39:07

阅读数:9

评论数:0

从设计角度理解Handler通信机制

Handler通信机制大家都很熟悉了,但是我们不应满足于知道如何使用这套机制,本文试图从背后的设计思路着手,更深入地理解Handler的设计原理。 我们将从线程分工、建立通信、添加和处理、处理时机和内存泄露原理五个方面,尝试学习Handler的设计原理。 线程分工 App中的View都是由Vi...

2019-01-21 17:33:19

阅读数:12

评论数:0

Android架构分层演进实践

起源 我们知道,软件开发项目是一个综合平衡的过程,要平衡时间、成本、范围、质量四个要素,在单个项目中,这四要素是非此即彼的:时间紧迫就要压缩需求范围,添加需求就要追加成本,确保质量就不能过于压缩工期,相互之间无法调和。 但如果跳出单个项目,在日常积累上面下功夫,我们却有可能找到一种同时有利于项...

2019-01-21 17:18:28

阅读数:1

评论数:0

从架构角度看Retrofit的作用、原理和启示

前言 Retrofit是squareup公司的开源力作,和同属squareup公司开源的OkHttp,一个负责网络调度,一个负责网络执行,为Android开发者提供了即方便又高效的网络访问框架。 不过,对于Retrofit这样设计精妙、代码简洁、使用方便的优秀开源项目,不能仅知道如何扩展和使用...

2019-01-21 17:13:44

阅读数:2

评论数:0

Android进阶;java中的锁相关知识

相信面试过大厂Android高级工程师的朋友都知道,java知识一定是必问的。本篇文章是关于java虚锁相关知识和笔记心得,希望能帮助朋友们更深入的了解这一块 原子性、可见性、有序性 原子性:一段指令不会被拆分给多个处理器执行 synchronized能实现原子性 可见性:数据被修改后,其他线...

2019-01-21 16:57:52

阅读数:2

评论数:0

Android进阶;获取当前运行的App进程

三种方式概述及对比 getRunningTasks方法 在Android5.0以前,系统允许我们通过ActivityManager的getRunningTasks()函数,直接获取当前运行的App。 这种方法唯一的问题就是过时了,在5.0以上不能使用。 USAGE_STATS_SERVIC...

2019-01-21 16:51:57

阅读数:1

评论数:0

Android进阶;Java虚拟机中类的加载

相信面试过大厂Android高级工程师的朋友都知道,java基础一定是必问的。本篇文章是关于java虚拟机中类的加载方面的笔记心得,希望能帮助朋友们更深入的了解这一块 class/字节码 计算机的硬件底层,至今还是0/1电路,人们用汇编语言实现了在硬件电路上运行程序,汇编的每一条指令,都有对应...

2019-01-18 15:47:12

阅读数:48

评论数:0

Java多线程基础——线程和线程安全

相信面试过大厂Android高级工程师的朋友都知道,java基础一定是必问的。本篇文章是关于java多线程和安全方面的笔记心得,希望能帮助朋友们更深入的了解这一块 线程及其实现 进程 进程是操作系统进行资源分配调度的最小单位,各进程有独立的系统资源(如内存、文件I/O等),互相之间不能直接访问...

2019-01-18 15:43:14

阅读数:25

评论数:0

Java多线程基础;内存

相信面试过大厂Android高级工程师的朋友都知道,java基础一定是必问的。本篇文章是关于java多线程内存方面的笔记心得,希望对大家会有帮助。 因为处理器主频在硬件发展上的瓶颈,摩尔定律基本失效,现在真正起作用的是并行处理的Amdahl定律,毕竟,现在计算机的瓶颈在于存储和通信,而不是运算本...

2019-01-18 15:38:11

阅读数:14

评论数:0

Android进阶;Binder通信机制概述

IPC 我们知道,在操作系统中,进程是最基本的单位,各自拥有独立的内存空间,所以进程间无法直接访问。 所以,各个操作系统都有跨进程通信机制(pipe管道/signal消息/消息队列/共享内存/semaphore信号量/Socket套接字等),IPC就是所有跨进程通信机制的统称。 在Android...

2019-01-18 15:24:08

阅读数:22

评论数:0

Android进阶;Activity的栈与跳转(笔记)

Activity是Android四大组件中用来显示界面和操作互动的,一般来说,我们手机上都会打开多个App,每个App又有多个Activity,在用户看来,这些Activity的创建、回退、跳转、复用等,都是用户体验,甚至是业务逻辑的一部分,所以Android提供了完备的管理机制。 先来梳理一下基...

2019-01-18 14:49:40

阅读数:33

评论数:0

Android进阶;Handler消息机制详解

我们知道,Android里面的线程做了这样的分工:主线程不做耗时操作,子线程不更新UI。 这是因为Android系统是个单线程模型,系统给App分配的进程里,只有一个主线程,主线程是App进程的核心,所有的组件都在主线程里实现、调度和管理,组件的绘制、互动操作和生命周期回调都是主线程处理的,这...

2019-01-18 14:42:46

阅读数:18

评论数:0

Android进阶;App开发怎样又快又稳又清晰

开发者的价值,是通过技术和产品体现的,对于App开发来说,除了实现业务之外,最重要的莫过于开发的速度、质量和可维护性,速度决定你能否支撑公司抢占市场,质量决定你们能不能站稳位置不被迅速踢走,可维护性决定你们继续前行时能否保持轻快的步伐。 速度、质量和可维护性 对速度、质量和可维护性的要求,其实...

2019-01-18 14:26:52

阅读数:16

评论数:0

Android进阶;App的异常崩溃处理

做任何软件,都需要考虑异常情况的处理,这是软件的可维护性的一部分。 异常崩溃是一种罕见的极端异常情况,这种情况下,针对终端用户的UI反馈、事故设备的信息采集、向后台维护人员的数据反馈等,都需要精心的设计。 UI反馈 要做反馈,首先要抓到所有的异常崩溃。 异常崩溃都是App进程的异常,每个Ap...

2019-01-18 14:19:15

阅读数:14

评论数:0

Docker安装与使用

Docker Docker的镜像和容器 An image is a lightweight, stand-alone, executable package that includes everything needed to run a piece of software, including...

2019-01-17 16:57:13

阅读数:41

评论数:0

MVP框架的演化

MVP这种架构在Android界已经基本成为标配,MVP本身也有很多写法和变种,当然,没有最好的架构,只有最合适的架构,具体架构要怎么写,还是要看实际项目的需要。 我们在这里简单梳理一下MVP的一些演化版本,希望为具体的项目实现提供一点参考。 MVP本身的概念,就是把Model、View和Pres...

2019-01-17 16:50:20

阅读数:32

评论数:0

在App中对接微信和支付宝

目录 准备工作 微信登录和支付 支付宝登录和支付 对比 准备工作 微信 注册微信开放平台,成为开发者(开发)   注册你的App,会给你一个AppId和AppSecret   注册微信商户平台,成为商户(收钱)   会给你一个商户ID   共有三个ID:...

2019-01-17 16:39:18

阅读数:144

评论数:1

Android工程常用配置和开发技巧

Android工程经常需要做一些基本设置,如混淆、多版本、申请权限等,在这里做一下汇总,以便查阅。 目录 Android Studio中直接运行Java的main函数 Android Studio的快捷代码(如psvm) Activity样式 MultiDex 混淆配置 AIDL接口...

2019-01-17 16:15:39

阅读数:64

评论数:0

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