Base Station

Base Station

君子坐而论道 少年起而行之

Android 内存管理机制
####基于 Linux 内存管理 Android 系统虽然是基于 Linux 2.6 内核开发的开源操作系统,但是 Android 系统对 Linux 的内存管理系统进行了优化,Linux 系统会在进程活动停止后就结束该进程,而 Android 系统则将这些进程都保留在内存中(即使你是退出该程序而不是 Home 键,任然会保留空置进程),这些保留在内存里的进程通常不会影响整体系统的运行,并且当用户再次激活这些进程时,提升了进程的启动速度和保留了状态。 内存分配Android 系统会对每个进程的 Dalvik 设置了严格的 Heap 使用限制,如果应用达到内存限制容量后仍然继续申请内存就...
Android 的线程和线程池
这篇文章主要是复习 Android 开发艺术探索的第 10 章和 第 11 章,整理了 Android 中关于线程的知识点。 ThreadLoacalThreadLocal 是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储以后,只有在指定线程中可以获取到存储的数据,对于其他线程来说则无法获取到数据。 ThreadLoacal 的另一个使用场景是复杂逻辑下的对象传递,例如监听器,有些时候一个线程中的任务过于复杂,这可能表现为函数调用栈比较深以及入口的多样性,在这种情况下使用 ThreadLocal 可以让监听器作为线程内的全局对象存在,只要在当前线程,就可以通过 ge...
Android View 工作原理
初识 ViewRoot和DecorViewViewRoot 对应 ViewRootImpl 类,它是连接 WindowManager 和 DecorView 的纽带, View 的三大流程均是通过 ViewRoot 来完成的。在 ActivityThread 中,当 Activity 对象被创建完毕后,会将 DecorView 添加到 Window 中,同时会创建 ViewRootImpl对象,并将 ViewRootImpl 和 DecorView 建立关联。源码如下: 12root =new ViewRootImpl(view.getContext(),display);root.se...
Android View 事件体系
View 的位置View 的位置由它的四个顶点来决定,分别对应于 View 的四个属性:top、left、right、bottom,其中 top 是左上角纵坐标,left 是左上角横坐标,right 是右下角横坐标,bottom 是右下角纵坐标。这些坐标都是相对于 View 的父容器来说的,因此它是一种相对坐标。它们的关系以及获取的 API 如下图。 MotionEvent 和 TouchSlopeMotionEvent在手指接触屏幕后触发的一系列事件,典型的如下: ACTION_DWON 手指刚接触屏幕 ACTION_UP 手指离开屏幕 ACTION_MOVE 手指在屏幕上滑动 ...
Android IPC 机制
IPC 是 Inter-Process Communication 的缩写,含义为进程间通信或跨进程通信,是指两个进程之间进行数据交换的过程。那么什么是进程?什么是线程?按照操作系统的概念,线程是 CPU 调度的最小单元,同时线程是一种有限的系统资源。二进程一般指一个执行单元,在 PC 和移动设备上指一个程序或者应用。一个进程可以包含多个线程,也可以只有一个线程即主线程,在Android 也叫 UI 线程。 为什么需要多进程通信,使用场景前面也有说在操作系统中一个进程对应的指一个程序或者应用,当两个应用需要数据交互的时候就必须要采取夸进程的通信方式来获取所需要的数据。在 Android ...
Android 艺术开发探索笔记
###activity的生命周期 activity a 启动 activity b 然后返回activity a 再返回到桌面 它们的生命周期是怎样变化的? A onCreate —> A onStart —> A onResume —> 跳转 —> A onPause —> B onCreate —> B onStart —> B onResume —> A onStop —> 返回 —> B onPsuse —> A onRestart —> A onStart —> A onResume —> ...
Data Binding学习笔记
前言DataBinding 出来很久了,不过现在连 MVP 都没有大规模被使用,别说写法用法更颠覆性的 DatatBinding 这样的了。但 DataBinding 这种面向 MVVM 的编程思想前端的使用已经非常普遍了,且确实给开发带来很大的便利。所以还是有必要学习和了解。 什么是 DataBinding?简单的来说 DataBinding 是 Google 在 Android 上的一种 MVVM 的实现。MVVM 是Model-View-ViewModel的简写,它是 MVP(Model-View-Persenter) 模式与 WPF 结合的应用方式发展演变过来的一种新型架构。而 ...
适配器模式与外观模式
如果你浪费了自己的年龄,那是挺可悲的。因为你的青春只能持续一点儿时间——很短的一点儿时间。 —— 王尔德 前言今天学习的设计模式为适配器模式和外观模式,至于为什么两个一起学,因为书上是这样的。至于为什么书上是这样的,就一起来回顾吧。 正文适配器模式(adapter)**适配器模式(Adapter)**在 Android 中真是不能再常见了,因为我们所用到的很多控件都需要编写适配器给控件提供数据源,例如: ListView、RecyclerView、spinner等待呢个,至于为什么这些控件要使用适配器模式却一直不求甚解,今天就来好好思考一下。 还记得第一节课的Duck吗,我们可以通过...
工厂模式(factory Pettern)
前言一看日期吓一跳,已经一周多没有写笔记了。除了懒之外还是懒….其实之前认真思考过,是否应该花大量的时间去排版笔记去写 bolg,想想还是应该写下去,除了给予自己反馈增加自己的动力确实能让自己学习到的东西再梳理一遍增加知识在脑袋里的存储时间。 正文工厂模式无论是在平时开发还是各种源码中都经常出现的,它细分为三种 : 简单工厂 工厂方法 抽象工厂 虽然分类较多,不过具体的作用都是将对象创建的过程封装起来,以便将代码从具体类解耦。重点介绍较为复杂的抽象工厂,简单工厂和工厂发方法我们应该在平时都经常用到,很容易理解。 简单工厂那么我们先来实现一个小目标吧,比如说,开一个 🍕 披萨店! 披...
装饰者模式(Decorator)
your internal mediocrity is the moment when you lost the faith of being excellent 前言又到了学习 Head First 的时间了,今天大名鼎鼎的星巴兹咖啡找到我们,让我们帮忙更新他们的订单系统,他们现在的订单系统是这样的: 看起来还好不是吗,简单清晰。所有的饮料都继承Beverage,具体的饮料用cost()来计算价格description来描述。但是他们遇到了一个问题,购买咖啡时候,也可以要求在其中加入各种调料,例如 : milk(牛奶)、Soy(豆浆)、Mocha(摩卡)等等。最后会更具加入的不同调...
avatar
Nutcracker
你以后会遇到很多机遇,但你的平庸会毁掉它们。当你觉得自己做的还不错的时候,你已经杀死了那个能够让你做的更好的自己
FRIENDS
沧海浮舟