- 博客(17)
- 收藏
- 关注
原创 Android开发---测试教程
Android中的测试框架Android测试框架基于JUnit,JUnit是一个开放源代码的Java测试框架,用于编写和运行可重复的测试。尽管你可以使用JUnit测试Android工程,但Android工具允许你为应用程序的各个方面进行更为复杂的测试,包括单元层面及框架层面。 Android JUint 扩展提供了对Android特定组件(如Activity,Service)的测试支持,这些扩展
2015-10-30 15:27:09 549
原创 Android 5.0源码分析---startService与bindService的区别
startService启动过程简述主进程调用到ActivityManagerService进程中,完成新进程的创建; 这一步主要是解析Intent中的参数,解析前面在AndroidManifest.xml定义的Service标签的intent-filter相关内容。紧接着启动一个新的进程。在新的进程启动完成后,从新进程调用到ActivityManagerService进程中,获取要在新进程启
2015-10-29 14:07:05 673
原创 Android 5.0源码分析---ContentProvider中的ContentObserver研究
就像在Android中的广播机制一样,在ContentProvider中的消息通知机制也有一个管理者 叫做ContentService 现在我们进入到ContentResolver 中去看下是如何注册这个ContentObserver的: public final void registerContentObserver(Uri uri, boolean notifyForDescenden
2015-10-29 09:08:30 885
原创 Android 5.0源码分析---Content Provider的启动过程分析
ContentProvider是Android四大组件之一,承担着跨进程数据访问的重要职责,既然是跨进程,那就必须有一个客户端进程和一个ContentProvider进程,那么这里就又涉及到了进程间的通信。 Android提供了ContentProvider,一个程序可以通过实现一个Content provider的抽象接口将自己的数据完全暴露出去,而且Content providers是以类似数
2015-10-28 16:08:19 735
原创 Android 5.0源码分析---startService的过程
我们之前讲到了ActivityManagerService作为控制Activity启动的重要环节,这里在启动Service中也会起到重要的作用。 在ActivityManagerService中有一个startService方法: public ComponentName startService(IApplicationThread caller, Intent service,
2015-10-27 10:28:08 873
原创 Android5.0 源码研究---进程间通信 Linux内核源码部分解析
什么叫进程间通信:一般而言,进程有单独的地址空间。我们可以了解下可执行程序被装载到内存后建立的一系列映射等理解这一点。如此以来意味着如果我们有两个进程(进程A和进程B),那么,在进程A中声明的数据对于进程B是不可用的。而且,进程B看不到进程A中发生的事件,反之亦然。如果进程A和B一起工作来完成某个任务,必须有一个在两个进程间通信信息和时间的方法。进程和线程不同,相同进程中的线程中的一些
2015-10-20 19:15:20 1290
原创 Java super与this关键字解析
1.super关键字调用超类(父类)中的方法(必须是protect 或 public)调用超类的构造器(必须作为构造器的第一条语句出现)(下面贴上代码)//父类class A { private String mA; public A(String a) { mA = a; }}//子类class B extends A { public B(String b) {
2015-10-18 19:18:51 359
原创 Java 类设计的准则----编程的良好习惯
一定要保证数据的私有性:编写一个访问方法和一个修改方法一定要对数据进行初始化:Java不会对局部变量进行初始化,但会对实例变量进行初始化(0, false, null)不要过多的基本数据类型将类的职责适当分解(过多也没有一个标准说法)类的变量名和方法名一定要体现他们的职责
2015-10-18 18:57:35 349
原创 静态代码块 初始化块 代码块的区别
public class Employee { //静态代码块-----------1 static { //do something... } //初始化块------------2 { //do something... } private void fun() { //代码块---------3 { //do something... }
2015-10-17 13:03:17 649
原创 Java中 构造函数与初始化块的执行顺序
先贴上一段类的代码public class Employee { private int age; private String name; { age = 2; //初始化块 } public Employee(String name, int age) { //构造函数 this.age = age; this.name = name; } }在Em
2015-10-17 12:36:30 426
原创 Java 无法调用默认构造函数
假设现在有一个类Class Employee { //.....................}如果你在类的定义中实现了一个有参的构造函数Employee(String name, int age)但你没有实现一个无参构造函数,那么编译器不会自动给你指定一个默认构造函数此时你调用Employee( ) //The constructor Employee() is un
2015-10-17 11:55:44 669
原创 Java中 &&中的短路问题
expression1 && expression2expression1 和 expression2 是两个逻辑表达式,当expression1为假时,第二个表达式expression2不执行。
2015-10-16 17:13:18 496
原创 Java中数据类型的大小与范围
int // 4位 范围是20亿short // 2位 范围是3万long // 8位 范围超过地球总人数byte // 1位 -127 ~ 128
2015-10-16 16:53:17 561
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人