android
文章平均质量分 65
一只特立独行的Yang
这个作者很懒,什么都没留下…
展开
-
Android assistant
Codeframeworks/base/core/java/android/speech/frameworks/base/core/java/android/speech/tts/frameworks/base/core/java/android/service/voice/frameworks/base/services/voiceinteraction/Test codeframeworks/base/tests/SoundTriggerTestAppframeworks/base/原创 2021-09-26 16:23:49 · 2083 阅读 · 0 评论 -
Android Memory management
https://developer.android.com/topic/performance/memory-overviewAndroid Runtime(ART)和Dalvik使用页(paging)和内存(memory-mapping)映射来管理内存。一个app修改过的内存,只能通过释放对象引用的方式让garbage collector回收;唯一的例外是映射的文件如果没有被修改过,那么系...原创 2020-09-15 19:50:20 · 531 阅读 · 0 评论 -
剖析ContentProvider的query操作
年终(农历年)的一篇任务文档。本篇剖析ContentProvider的query操作,包括了以下内容:获取ContentProvider对象Server端的Cursor对象Client端的Cursor对象CursorWindow1. 获取ContentProvider对象通常,我们会使用下面的方式使用ContentProvider获取数据:mContext.getConten...原创 2020-01-20 14:06:53 · 1712 阅读 · 0 评论 -
设计模式小结
面临的问题:1.交互对象之间的耦合为后续的维护和扩展带来了不便2.代码复用OO基础:抽象封装多态继承OO原则:将变化分离出来,封装变化多用组合(Has-a),少用继承(Is-a)针对接口编程,不针对实现编程减少交互对象之间的耦合把"行为"想成&原创 2019-09-21 15:10:18 · 383 阅读 · 1 评论 -
ContactsProvider2
Android的数据库体系可以分为三个层次:ContentProvider层;ContentProvider将对数据的增删改查操作进行了抽象,具体实例会注册到AMS中,提供跨进程的服务。ContentProvider可以用于管理各种数据存储源的访问,包括结构化数据(SQLite)和非结构化数据(如图像文件)。SQLiteDatabase/SQLiteOpenHelper;这部分代码位于“/f...原创 2019-09-13 13:52:44 · 1198 阅读 · 0 评论 -
Protocol buffer
C++、C#、Dart、Go、Java和Python都可以使用Protocol buffer language。https://developers.google.com/protocol-buffers/docs/protohttps://developers.google.com/protocol-buffers/docs/javatutorial为什么要使用Protocol buffe...原创 2019-01-09 11:24:35 · 357 阅读 · 0 评论 -
Input event -- InputManagerServie
SystemServer启动的时候会在startOtherServices方法中创建InputManagerService对象,并以InputManagerService对象为参数调用main@WindowManagerService方法; 另外还会调用addService@ServiceManager方法将这个对象作为“input”系统服务的server端。main@WindowManager...原创 2018-11-27 13:59:28 · 508 阅读 · 0 评论 -
Input event --- View hierarchy
输入事件派发第二篇!输入事件在View hierarchy中的派发。原创 2018-11-27 13:54:17 · 338 阅读 · 0 评论 -
Binder
进程是操作系统层面的概念,进程的好处有很多,最显著的一点就是进程有了自己私有的内存空间,从而保证了进程内数据的安全,但是却为进程间的通信带来了不便。为了解决这个问题,不同的操作系统采用了很多不同的方案,Binder便是Android特有的方案,当然Android是以Linux为内核的操作系统,所以UNIX类型的进程间通信方式( file-system, local sockets或者signals...原创 2018-09-21 11:41:01 · 2014 阅读 · 0 评论 -
Activity
Activity就是界面,用来和用户交互。 想使用一个Activity,就必须在AndroidManifest.xml文件中对其进行声明, 如果不想把Activity暴露给其他应用可以不添加intent filter。Activity的状态会随着用户操作/系统回收而发生变化,这些状态由系统控制,但是开发者可以通过一系列的callback 来决定activity状态变化时的操作。正常生...原创 2018-09-26 15:24:45 · 614 阅读 · 0 评论 -
Service
Service主要在后台执行耗时操作,或者为其他进程提供服务。Service运行在主线程之中,如果要执行耗时操作,还得创建一个线程; 所以如果单单是为了将耗时操作挪出主线程,可以创建线程,如果是想用户不再和app交互时仍可在后台运行可以创建service。1. Service可以分为三类Foreground 前台service是指那些执行可以被用户觉察到操作的service;前台ser...原创 2019-03-29 23:20:52 · 428 阅读 · 0 评论 -
Telephony--PhoneAccount
对PhoneAccount的使用体会并不深,所以很多知识点漏了或者写的不清晰,后续get到新体会时再完善吧。内容显的杂乱,简单分了五部分: 1. PhoneAccount的作用 2. PhoneAccount包含的信息 3. PhoneAccount相关的属性 4. SIMs based phone accounts 5. 题外篇ConnectionService1. Pho原创 2017-12-26 10:52:15 · 3351 阅读 · 0 评论 -
Android overlay简单总结
本文简单总结Android 的overlay机制, 分为下面两部分:1. SRO–Static resource overly(静态替换) 2. RRO–Runtime resource overlay (运行时替换)1.SRO–Static resource overlay(静态替换)SRO是在编译时完成的,我们可以根据不同的产品,为app/framework加载不同的资源...原创 2017-12-23 10:44:18 · 13264 阅读 · 5 评论 -
Android Property
本文将从下面三方面简单分析总结android property: 1. 使用方式 2. Property文件的加载 3. Property的存储1. 使用方式在工作中经常通过下面三种方式使用property: 1.code里面使用SystemProperties.java和property_service.cpp SystemProperties.java为Jave层原创 2017-12-16 11:06:32 · 3917 阅读 · 0 评论 -
Android Init language
Android Init Language对于大多数的Android开发者来说,Init语言使用频率应该不高; 但是阅读.rc文件对理解开机过程很有帮助,所以还是要学习下Init语言。下面的内容来自于/system/core/init目录下的readme文件,readme算是官方文档了,当作手册来用。语法Android Init 语言比较简单,只有五种类别的声明/语句:Actio原创 2017-11-28 11:47:49 · 1254 阅读 · 0 评论 -
android log
Android log的重要性不言而喻,是我们分析问题的依据,理解代码的好助手。 本文从以下两方面对log做一些简单总结: 1. Log分类 2. Log打印控制1. Log分类Android 打印的log分以下几类: 1. main log 2. sytem log 3. radio log 4. event log 5. kernel log 6. crash......原创 2017-12-02 15:37:53 · 3153 阅读 · 1 评论 -
State machine
在看state machine代码(StateMachine.java)的时候,发现源码的注释写的很好; 前半部分是讲解,后半部分是示例代码,读过之后state machine的要点也就基本掌握了。今天就做下翻译。当然翻译的意义并不大,能看英文的还是直接看英文的好,这里只是给自己练练手。言归正传,原文如下:这里定义的是一个分层次的状态机,可以处理消息,并且拥有预制的分层状态。状态是一个State对象翻译 2017-11-07 19:29:17 · 1405 阅读 · 0 评论