Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Android输入分析

Android输入分析

依照惯例,在研究Android输入系统之前给出输入系统的本质描述:从哲学的观点来看,输入系统就是解决从哪里来又将到哪里去问题。输入的本质上的工作就是收集用户输入信息并放置到目标位置。 Android在源代码分类上,并没有输入系统分类。本章的输入系统研究是一个综合的分析,前面的GWES的分析,特别是View的Focus Path以及Window Manager Proxy是本章分析的基础。Android输入系统的组成输入系统由如下几部分组成:1)后台窗口管...
Android GWES分析

Android GWES分析

我这里的GWES这个术语实际上从Microsoft的Window上移植过来的,用GWES来表示Android的窗口事件系统不是那么准确,在Android中Window是个弱化了的概念,更多的表现在View这个概念上。在很大程度上,Android的View的概念可以代替MicrosoftWindow这个概念,有点和Microsof暗中较劲的意味,你用过的概念我就偏不用,这个也是我以为的设计者意图。原始GUI基本框架 首先我们从Android的SDK外特性空间...
Android Zygote Service

Android Zygote Service

在本章我们会接触到这两个单词:Zygote[生物]受精卵,接合子,接合体 Spawn:产卵通过这两个单词,我们就可以大体知道Zygote是干什么的了,就是叫老母鸡下蛋。通过“Zygote”产出不同的子“Zygote”。从大的架构上讲,Zygote是一个简单的典型C/S结构。其他进程作为一个客服端向Zygote发出”孵化”请求,Zygote接收到命令就“孵化”出一个Activity进程来。Zygote系统代码组成及其调用结构:Zygote.java提供访问D...
Android 启动过程详解

Android 启动过程详解

Android从Linux系统启动有4个步骤;(1) init进程启动(2) Native服务启动(3) System Server,Android服务启动(4) Home启动总体启动框架图如:第一步:initial进程(system/core/init) init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。init始终是...
Android Service分析

Android Service分析

Android体系架构中三种意义上服务:Native服务 Android服务 Init空间的服务,主要是属性设置,这个IPC是利用Socket来完成的,这个我将在另外一章来讨论。Navite服务,实际上就是指完全在C++空间完成的服务,主要是指系统一开始初始化,通过Init.rc脚本起来的服务,例如ServiceMangerservice,Zygoteservice,Mediaservice,ril_demonservice等。Android服务是指在JV...
Android IPC框架分析 Binder,Service,Service manager

Android IPC框架分析 Binder,Service,Service manager

我首先从宏观的角度观察Binder,Service,ServiceManager,并阐述各自的概念。从Linux的概念空间中,Android的设计Activity托管在不同的的进程,Service也都是托管在不同的进程,不同进程间的Activity,Service之间要交换数据属于IPC。Binder就是为了Activity通讯而设计的一个轻量级的IPC框架。 在代码分析中,我发现Android中只是把Binder理解成进程间通讯的实现,有点狭隘,而是应该...
Android 基本空间划分

Android 基本空间划分

Google给了我们一张系统架构图,在这张图上我们可以看到Android的大体框架组成。从上图可以看到:AndroidApplications,ApplicationFramework,DalvikVirtualMachine,Linux。如果将Android泛化,我们可以将系统划分成两部分:但是为了研究的方便我们先看最为本质的三层,上面是Android,中间叫Dalvik虚拟机,下面叫Linux。虽然上两层都包含在Android中,但是为了理解的方便或者...
Android提高启动速度

Android提高启动速度

大家都知道启动速度慢是智能操作系统的一个通病,Android也不例外,启动速度大概在1分钟左右,虽然日本有一个叫quick boot的一秒启动android的产品,但是毕竟是旁门左道。所以从常规来提高android的启动速度成了大家研究的重点,也是难点。下面将初步研究的一下经验跟大家分享一下。 首先看一下android系统的启动流程:bootloader 引导程序kernel 内核init init初始化(这个大家都比较熟悉了,不要多...
Android 2.2 与 2.3的区别

Android 2.2 与 2.3的区别

Android 2.2 更新升级的特点 ①界面加入了一个半透明的浮动菜单,显示的是拨号、程序菜单和浏览器三个常用功能。 ②Google日历的配色变化较大,菜单只调换了顺序。 ③设置选项中,主菜单,声音和显示调整为独立分开设置选项。 ④邮件菜单,选项更丰富,增加了文本选择功能,并菜单顺序微小的调整,Gmail菜单,增加了前后查看的按钮。 ⑤自带的Google搜索搜索框的变化也很大,可以选择搜索类别,让搜索目的更明确。 ⑥驾车模式界面,在Andro...
Android线程模型

Android线程模型

当一个程序第一次启动的时候,Android会启动一个LINUX进程和一个主线程。默认的情况下,所有该程序的组件都将在该进程和线程中运行。同时,Android会为每个应用程序分配一个单独的LINUX用户。Android会劲量保留一个正在运行进程,只在内存资源出现不足时,Android会尝试停止一些进程从而释放足够的资源给其他新的进程使用, 也能保证用户正在访问的当前进程有足够的资源去及时的响应用户的事件。Android会 根据进程中运行的组件类别以及组件的状...
Android 多点触摸

Android 多点触摸

其实多点触摸并没有想象中的那么神奇。处理2个手指一般就已经够用,放上3个手指显得有点滑稽,依赖更多手指进行操作绝对不是一个好的主意。 理论上Android可以处理 多达256 个手指的触摸,大概只有章鱼哥能享受这种技术带来的便利。就编程人员来说,编写多点触摸和单点触摸的方式几乎一模一样。其奥秘在于MotionEvent不仅可以封装单点触摸的消息,也可以封装多点触摸的消息。 在处理单点触摸中,我们用到MotionEvent.ACTION_DOWN、ACTI...
Android Jamendo开源在线音乐播放器源码分析

Android Jamendo开源在线音乐播放器源码分析

本篇旨在分析网上很不错一个的在线音乐播放器源代码,通过分析这个源代码的结构和实现,一方面自己总结下,也与大家分享下Jamendo在线音乐播放器是一款Android平台在开源的在线音乐播放,该播放器的主要特色如下:1.界面美观,在jamendo播放器中精美的布局的随处可见,大量使用自定义控件和Adapter进行布局,这点可供初学者好好探讨研究2.构架清晰3.在代码中大量使用全局缓冲机制,如全局Application缓冲,图片缓冲等等。。4.数据传递使用JSO...
Android播放器为何暂停后继续播放却没有继续?

Android播放器为何暂停后继续播放却没有继续?

问题:最近在做音乐播放器这个模块,发现一个问题,在点击暂停按钮后,歌曲是暂停了,但是再一次点击播放按钮后,歌曲并没有继续播放,而是重新播放了。分析:如果真的是按照网上的例子做好判断并且API调用没有问题的话,那么下面这个就有99%的可能性了,那就是,你的播放器对象创建了多次。也就是说,我重新点击播放的时候,您老又创建了一个MediaPlayer实例。这当然不会继续播放啦。解决办法:请将获取实例写成单例模式,或者进行判空操作。...
<< 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 >>