- 博客(11)
- 资源 (80)
- 收藏
- 关注
原创 Android使用WindowManager实现悬浮窗
上一篇文章Framework学习(十一)WindowManager体系我们分析了WindowManager的用法及源码,这篇文章我们使用WindowManager实现一个简单的悬浮窗效果。类似与下面这种效果:项目目录项目目录结构很简单,一个MainActivity,一个WindowService。MainActivity只有两个按钮,用于启动和关闭WindowService。添加实现悬浮窗的逻辑全部
2017-10-27 17:09:31 3038 1
原创 Framework学习(十一)WindowManager体系
Window、WindowManager和WMSWindow是一个抽象类,具体的实现类为PhoneWindow,它是对View进行管理的。WindowManager是一个接口类,继承自父接口ViewManager,它是用来管理Window的,它的具体实现类为WindowManagerImpl。WMS是WindowManager进行窗口管理的具体实施者,如果我们想要对Window进行添加和删除就
2017-10-26 15:56:38 1975 1
原创 Java并发编程(四)未处理异常、线程池和ThreadLocal类
未处理异常以我们通常的经验,如果线程执行过程中抛出了未处理异常(没有用try-catch),那么我们的APP就会崩溃,并且我们可以从Error Log中看到出错的异常堆栈信息。那么我们有没有方法,在异常抛出之前对该异常进行处理呢?Thread.UncaughtExceptionHandler是Thread类的一个静态内部接口,该接口只有一个方法:void uncaughtException(Thre
2017-10-25 10:34:45 2432
原创 Android应用内跳转Scheme协议
之前一篇文章WebView使用解析(一)之基本用法我讲过了WebView与JS交互的方式,JS调用Java代码主要是通过对象注入的方式实现的,即使用addJavascriptInterface。而JAVA调用JS代码则是通过javascript:伪协议来实现的,即javascript:methodName(params……)。但是这种交互方式存在着不少问题: 1、Java 调用 js 里面的函数,
2017-10-18 16:38:14 7628
原创 Framework学习(十)Content Provider启动过程
关于Content Provider的使用请参考Android ContentProvider全面解析这篇文章。query方法到AMS的调用过程在上述文章中我用到了Content Provider查询数据库的例子如下:private void query() { Cursor cursor = this.getContentResolver().query(mCurrentURI,
2017-10-10 17:01:40 1280
原创 Framework学习(九)Broadcast的注册、发送和接收过程
广播的注册BroadcastReceiver的注册分为两种:静态注册和动态注册。静态注册在应用安装时由PackageManagerService来完成注册过程。这里只介绍BroadcastReceiver的动态注册。动态注册BroadcastReceiver,需要调用registerReceiver方法,它的实现在ContextWrapper中。frameworks/base/core/java/a
2017-10-10 10:41:50 2355
原创 Framework学习(八)Service的启动/绑定过程
之前的文章Framework学习(五)应用程序启动过程我们讲解过了应用程序(Activity)的启动过程,本篇我们来看看Service的启动/绑定过程。Service的启动过程ContextImpl请求AMS要启动Service,我们会调用startService方法,它的实现在ContextWrapper中。frameworks/base/core/java/android/content/Con
2017-10-09 14:30:18 1894
原创 Framework学习(七)AMS家族
相信绝大部分读者对ActivityManagerService(简称AMS)都有所耳闻。AMS是Android中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似,因此它在Android中非常重要。AMS启动流程在Framework学习(三)SystemServer进程启动过程这篇文章我们简单介绍过SystemServer
2017-10-07 14:04:11 3231
原创 Framework学习(六)应用程序进程启动过程
概述上篇文章Framework学习(五)应用程序启动过程我们讲解了应用程序启动过程,但是还有一个遗留知识点,那就是应用程序进程的启动。我们知道应用程序启动之前需要保证应用程序的进程先启动,本文我们就来看看应用程序进程的启动过程。AMS在启动应用程序时会检查这个应用程序需要的应用程序进程是否存在,不存在就会请求Zygote进程将需要的应用程序进程启动。在Framework学习(二)Zygote进程启动
2017-10-03 18:17:56 2042
原创 Framework学习(五)应用程序启动过程
在Android系统中,启动四大组件中的任何一个都可以启动应用程序。但绝大部分时候我们是通过点击Launcher图标来启动应用程序。本文依据Android7.0源码,从点击Launcher图标开始,分析应用程序的启动过程,其实就是分析根Activity的启动过程。Launcher请求AMS在Framework学习(四)Launcher启动过程 这篇文章我讲过Launcher启动后会将已安装应用程序的
2017-10-02 15:59:15 3559
原创 Framework学习(四)Launcher启动过程
Launcher概述上一篇文章Framework学习(三)SyetemServer进程启动过程中我们讲解了SystemServer进程的相关知识,我们知道SystemServer进程主要用于启动系统的各种服务,其中就包含了Launcher服务,LauncherAppService。Android系统默认第一个启动的应用程序是Home应用程序,这个应用程序用来显示系统中已经安装的应用程序,这个Home
2017-10-01 22:58:14 3342
Android MediaPlayer和VideoView的使用
2016-11-25
Android Service IPC通信之Messenger机制
2016-10-30
Android-component-application-master.7z
2020-01-26
Android App Widget 开发
2017-09-08
Java 八大排序算法
2017-09-06
ShareSDK第三方登录
2017-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人