摘要:查看Android源码你会发现,代码中大量存在:SystemProperties.set()/SystemProperties.get();通过这两个接口可以对系统的属性进行读取/设置,顾名思义系统属性,肯定对整个系统全局共享。 属性系统是android的一个重要特性。它作为一个服务运行,管理系统配
阅读全文
摘要:Android Support Library包是一组代码库, 它提供了向后版本的framework API的兼容, 这些代码库实现的效果和只能在指定版本中使用的API一样好. 每个Support Library都是指定版本的兼容库,每一个 Support 包版本后缀 vX 所代表的含义。Andro
阅读全文
摘要:类图关系 在看Android的窗口机制之前,先看看其主要的类图关系以及层级之间的依赖与调用关系 1.window在当前的android系统的中的呈现形式是PhoneWindow (frameworks/base/policy/src/com/android/internal/policy/impl/
阅读全文
摘要:在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。所有View的子类成为”Widget”,所有ViewGroup的子类成为”Layout”。View和ViewGroup之间采用了组合设计模式。ViewGroup作为布局容器类的最上层,布局容器里面又可以有View和Vi
阅读全文
摘要:JSON常用与服务器进行数据交互,JSON中“{}”表示JSONObject,“[]”表示JSONArray 如下json数据: 生成json数据代码: 解析json数据代码:
阅读全文
摘要:通常我们在处理耗时任务时候都会通过新建线程来处理,当任务处理完后通过Handler将结果发送回主线程。比如下面示例: 那么,我们能不能通过Handler从主线程发送消息给子线程呢?答案是肯定的,需要用到Looper.prepare()和Looper.loop()。如下面的代码:
阅读全文
摘要:什么时候需要 Looper Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.prepare()来给线程创建一个消息循环,调用Looper.loop()来使消息循环起作用,使用Looper.prepare()
阅读全文
摘要:在实际的Android开发过程中,我们遇到了一些奇奇怪怪的Crash,通过sigaction再配合libcorkscrew以及一些第三方的Crash Reporter都捕获不到发生Crash的具体信息,十分头疼。然后我们通过Bugly上报的Java的CallStack观察发现这些Crash发现了一些
阅读全文
摘要:上面这段代码在handler对象创建的时候却会报警告:This Handler class should be static or leaks might occur。意思是:Handler 类应该为static类型,否则可能会造成内存泄漏。 为什么会造成这种情况呢? 这种情况就是由于android
阅读全文
摘要:在实际工作中,经常遇到客户需要用代码设置系统时间的需求,但是Android非系统应用是无法设置系统时间的。于是,我设计了一个使用系统签名的时间设置服务,客户通过bind调用服务里的方法就能达到设置时间的目的。 这里用到的技术有: 1、Signapk签名 2、AIDL 3、bind service 将
阅读全文