Android
文章平均质量分 85
AdobeSolo
烂笔头,好记星
展开
-
Android CPU架构解析
Android CPU架构解析一、CPU架构分类armeabiarmeabi-v7aarm64-v8ax86x86_64mipsmips64二、各种CPU架构的介绍ARM架构属于RISC指令集,指令集精简、指令等长,虽然这样的设计可以提高处理效率,但在遇到复杂的指令后,就需要更多的简单指令来堆砌复杂任务;ARM从来只是设计低功耗处理器。其宗旨是设计低功耗处理器,这是他们的强项。arm原创 2017-06-19 18:28:42 · 3681 阅读 · 1 评论 -
ViewManager、ViewRootImp、WindowManagerImpl、WindowSession等详细解析
在Activity 从加载布局文件到显示的过程分析文中最后介绍到,承载了布局文件的DecorView通过ViewManger添加进行显示,那添加之后的显示过程又是怎么样的呢?本篇文章主要分析它接下来显示的过程。 ViewManager WindowManger WindowMangerImplactivity的makeVisible()还是ActivityThread的handleResumeAc原创 2017-12-07 20:43:32 · 1945 阅读 · 0 评论 -
Activity 生命周期函数执行过程详解
平时开发中接触到Android的启动以及各种生命周期函数,但是其背后的执行过程是怎么样的呢?本文从源码的角度来分析activity的启动以及它的生命周期函数。 关键的类在分析源码之前,先了解下几个关键的类的作用:ActivityManagerService:activity的启动以及生命周期都统一由ActivityManagerService管理,而ActivityManagerService处于原创 2017-12-03 16:50:29 · 1719 阅读 · 0 评论 -
JNI - 使用Android Studio进行NDK开发
最近有个新需求,需要把一些东西通过c++来实现,因此也接触到了NDK开发,此文章用于记录通过Android Studio开发NDK的基本流程,已经碰到的一些坑。 搭建NDK环境要进行NDK开发,首先需要搭建DNK环境。 第一步,配置NDK SDK路径,打开项目配置设置SDK Location 第二步,定义3个宏命令,便于我们进行NDK开发时编译定义宏命令的步骤如下图,在Preference原创 2017-11-30 14:33:19 · 668 阅读 · 0 评论 -
Java泛型原理详解
在Java 5时,引入了泛型,本文主要从原理的层面上分析泛型。 泛型的作用为什么需要引入泛型呢?泛型有什么样的作用呢?先看段代码public class Fruits { Fruits fruits; protected void set(Fruits item){ fruits = item; } protected Fruits get(){原创 2017-07-27 21:04:48 · 1486 阅读 · 0 评论 -
Android 获取前台应用的方法总结
应用开发中,经常遇到需要获取系统正在运行的前台应用是什么应用,例如桌面悬浮窗挂件,需要获取当前是不是处于桌面;然而随着Android版本的迭代,获取前台应用的方法都陆续被制裁,因此对这些方法做一个总结。 Android5.0以前版本 getRunningTasks() 在Android 5.0以前的版本中,google提供了getRunningTasks()方法来获取所有正在运行的应用原创 2017-08-18 18:12:33 · 9717 阅读 · 0 评论 -
Android休眠机制
最近修复一个遗留的bug,定时检测,超过多长时间则弹出一个Tip,在debug跟进这个bug的时候,并没有发现问题,Timer和TimerTask实现的定时任务,但是在实际使用的时候,产品等很多人都遇到不弹Tip的问题。回过神来一想,应该是掉进了Android休眠机制的坑里了。趁此机会对Android的休眠机制进行一个总结。 Linux的休眠机制 Android是基于Linux的,要原创 2017-08-11 18:16:44 · 3127 阅读 · 0 评论 -
Handler解析(二):消息post与sendMessage机制
上一篇Handler解析(一):是如何实现线程之间的切换分析了Handler线程切换的原理,本篇主要介绍Handler的post机制。 Post与sendMessage方法首先看看Handler中包含的Post和sendMessage相关的方法boolean post(Runnable r)boolean postAtTime(Runnable r, long uptimeMillis)boo原创 2017-07-26 21:28:38 · 942 阅读 · 0 评论 -
Java 内部类原理解析
Java 内部类在代码中是非常常见的,但是在Android系统里,常常会因为内部类的使用导致内存泄漏的问题,所以本文对内部类从原理上做一个比较详细的解析以及如何在使用内部类时该如何避免内存泄漏 内部类的种类Java的内部类分为四种:静态内部类、成员内部类、局部内部类和匿名内部类; 静态内部类静态内部类,顾名思义是一个静态的类,代码如下public class MainActivity exte原创 2017-08-01 00:29:33 · 1136 阅读 · 0 评论 -
Handler解析(一):是如何实现线程之间的切换
在Android中,一般情况下(特殊情况先不说)只有UI线程才能对View进行操作,然而为了避免ANR等,耗时操作都放到子线程进行,操作完成之后再切换到UI线程,而Handler正好能够完成从子线程切换到UI线程的工作,那么Handler是如何从子线程切换到UI线程的呢? 消息传递机制要了解Handler,就首先需要了解Android的消息传递机制,整个消息传递机制有四部分组成: 1.Me原创 2017-07-16 02:27:07 · 9097 阅读 · 6 评论 -
OkHttp使用介绍
最近对应用的网络模块进行重构,从原有HttpClient切换到OkHttp;在此对OkHttp的使用做一个简单的总结,方便后续查阅。官网地址:http://square.github.io/okhttp/ GitHub地址:https://github.com/square/okhttp OkHttp框架是一个基于http协议(http协议介绍)的网络请求框架,实现的主要功能,网络请求的调度原创 2017-07-12 16:58:41 · 448 阅读 · 0 评论 -
Activity 从加载布局文件到显示的过程分析
在Activity 生命周期函数执行过程详解中介绍了ActivityThread、Instrumentation、ActivityManagerService启动activity的过程,本文主要介绍Activity从加载布局文件到显示的过程。 SetContentView在activity的onCreate()生命周期函数中,会调用setContentView()来设置我们的布局文件,先来了解下s原创 2017-12-06 16:43:35 · 2165 阅读 · 0 评论