Watson的博客

仰望星空,脚踏实地。

排序:
默认
按更新时间
按访问量

Android新手入门思维导图

本文来自AndroidDeveloper的公众号,您可以搜索公众号:googdev,来获取AndroidDeveloper的技术干货。———-/////////////////////////——————–正文———-/////////////////////////——————–如何快速入门和进...

2016-10-21 09:45:03

阅读数:4911

评论数:0

Android使用WindowManager实现悬浮窗

上一篇文章Framework学习(十一)WindowManager体系我们分析了WindowManager的用法及源码,这篇文章我们使用WindowManager实现一个简单的悬浮窗效果。类似与下面这种效果:项目目录项目目录结构很简单,一个MainActivity,一个WindowService。...

2017-10-27 17:09:31

阅读数:498

评论数:0

Framework学习(十一)WindowManager体系

Window、WindowManager和WMS Window是一个抽象类,具体的实现类为PhoneWindow,它是对View进行管理的。 WindowManager是一个接口类,继承自父接口ViewManager,它是用来管理Window的,它的具体实现类为WindowManagerImpl。...

2017-10-26 15:56:38

阅读数:314

评论数:0

Java并发编程(四)未处理异常、线程池和ThreadLocal类

未处理异常以我们通常的经验,如果线程执行过程中抛出了未处理异常(没有用try-catch),那么我们的APP就会崩溃,并且我们可以从Error Log中看到出错的异常堆栈信息。那么我们有没有方法,在异常抛出之前对该异常进行处理呢?Thread.UncaughtExceptionHandler是Th...

2017-10-25 10:34:45

阅读数:750

评论数:0

Android应用内跳转Scheme协议

之前一篇文章WebView使用解析(一)之基本用法我讲过了WebView与JS交互的方式,JS调用Java代码主要是通过对象注入的方式实现的,即使用addJavascriptInterface。而JAVA调用JS代码则是通过javascript:伪协议来实现的,即javascript:method...

2017-10-18 16:38:14

阅读数:966

评论数:0

Framework学习(十)Content Provider启动过程

关于Content Provider的使用请参考Android ContentProvider全面解析这篇文章。query方法到AMS的调用过程在上述文章中我用到了Content Provider查询数据库的例子如下:private void query() { Cursor cu...

2017-10-10 17:01:40

阅读数:303

评论数:0

Framework学习(九)Broadcast的注册、发送和接收过程

广播的注册BroadcastReceiver的注册分为两种:静态注册和动态注册。静态注册在应用安装时由PackageManagerService来完成注册过程。这里只介绍BroadcastReceiver的动态注册。动态注册BroadcastReceiver,需要调用registerReceive...

2017-10-10 10:41:50

阅读数:436

评论数:0

Framework学习(八)Service的启动/绑定过程

之前的文章Framework学习(五)应用程序启动过程我们讲解过了应用程序(Activity)的启动过程,本篇我们来看看Service的启动/绑定过程。Service的启动过程ContextImpl请求AMS要启动Service,我们会调用startService方法,它的实现在ContextWr...

2017-10-09 14:30:18

阅读数:274

评论数:0

Framework学习(七)AMS家族

相信绝大部分读者对ActivityManagerService(简称AMS)都有所耳闻。AMS是Android中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似,因此它在Android中非常重要。AMS启动流程在Fra...

2017-10-07 14:04:11

阅读数:373

评论数:0

Framework学习(六)应用程序进程启动过程

概述上篇文章Framework学习(五)应用程序启动过程我们讲解了应用程序启动过程,但是还有一个遗留知识点,那就是应用程序进程的启动。我们知道应用程序启动之前需要保证应用程序的进程先启动,本文我们就来看看应用程序进程的启动过程。AMS在启动应用程序时会检查这个应用程序需要的应用程序进程是否存在,不...

2017-10-03 18:17:56

阅读数:366

评论数:0

Framework学习(五)应用程序启动过程

在Android系统中,启动四大组件中的任何一个都可以启动应用程序。但绝大部分时候我们是通过点击Launcher图标来启动应用程序。本文依据Android7.0源码,从点击Launcher图标开始,分析应用程序的启动过程,其实就是分析根Activity的启动过程。Launcher请求AMS在Fra...

2017-10-02 15:59:15

阅读数:501

评论数:0

Framework学习(四)Launcher启动过程

Launcher概述上一篇文章Framework学习(三)SyetemServer进程启动过程中我们讲解了SystemServer进程的相关知识,我们知道SystemServer进程主要用于启动系统的各种服务,其中就包含了Launcher服务,LauncherAppService。Android系...

2017-10-01 22:58:14

阅读数:381

评论数:0

Framework学习(三)SystemServer进程启动过程

SyetemServer进程的启动在上一篇文章Framework学习(二)Zygote进程启动过程中,我们已经知道Zygote进程会启动SyetemServer进程,但具体启动流程还没有涉及,本文我们就来看看SyetemServer进程具体启动过程。首先回顾下ZygoteInit#startSys...

2017-09-30 16:17:29

阅读数:448

评论数:0

Framework学习(二)Zygote进程启动过程

android系统进程启动流程android系统的Zygote进程是所有android进程的父进程,包括SystemServer和各种应用进程都是通过Zygote进程fork出来的。Zygote(孵化)进程相当于是android系统的根进程,后面所有的进程都是通过这个进程fork出来的,而Zygo...

2017-09-30 11:11:08

阅读数:459

评论数:0

Framework学习(一)Android 系统架构

Android系统架构Android本质就是在标准的Linux系统上增加了Java虚拟机Dalvik/ART,并在Dalvik/ART虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。androi...

2017-09-29 16:59:41

阅读数:2796

评论数:0

Java Class对象与反射机制

Java Class对象RTTIRTTI(Run-Time Type Identification)运行时类型识别,其作用是在运行时识别一个对象的类型和类的信息。这里分两种: 传统的”RRTI” — 它假定我们在编译期已知道了所有类型(在没有反射机制创建和使用类对象时,一般都是编译期已确定其...

2017-09-15 14:58:28

阅读数:423

评论数:0

Java并发编程(三)Java内存模型及volatile

内存模型相关概念大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程则慢得多(不是一个数量级),因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降...

2017-09-13 14:39:47

阅读数:244

评论数:0

Java并发编程(二)线程同步和等待唤醒机制

概述线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要原因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。 因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须...

2017-09-12 10:38:56

阅读数:2040

评论数:0

Java并发编程(一)线程创建、生命周期、控制

进程和线程进程是处于运行中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单元。 特征: 独立性:进程是系统中独立存在的实体,拥有自己的独立资源,没一个进程拥有自己私有的地址空间。没有经过允许的情况下,一个进程是不可以访问其他进程的地址空间。 动态性:进程与程序区别,一个是...

2017-09-08 16:40:51

阅读数:253

评论数:0

Android App Widget 开发

概述App Widget是应用程序窗口小部件(Widget),是微型的应用程序视图,它可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新。你可以通过一个App Widget Provider来发布一个Widget。Widget布局appwidget-provider标签这个东西是用来定义桌面...

2017-09-07 13:43:01

阅读数:717

评论数:0

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