Tag Archives: android

Android内存溢出OOM:常见内存泄漏

在上一篇文章中我们对Android中内存有了一个基本的了解,在本文继续介绍有关内存溢出的相关点。当内存泄漏超过一定的界限,必然会引起内存溢出,有些内存泄漏在开发中是比较常见的,接下来通过介绍几种常见额内存泄漏情形,以便在开发过程中采取必要的措施以此防止内存泄漏。 如下是Android开发者在开发中比较常见的几种内存泄漏,并给出了相对应的防止内存泄漏的解决方式。 单例模式引起的内存泄漏 单例模式可以 […]

阅读更多 »

Android内存溢出OOM:简单介绍

前言 在日常的Android开发中,每个开发者或多或少都会遇到过OutOfMemoryError这样崩溃信息。如果工程稍微大一些,在monkey测试的崩溃日志也是比较常见的一种。如下是比较常见的一些报错信息:

相对于StackOverflowError而言OutOfMemoryError则是比较常见的一种内存异常。在《深入理解Jav […]

阅读更多 »

Android跨进程IPC通信AIDL

简介 AIDL:Android Interface Definition Language,即Android接口定义语言,用于生成Android不同进程间进行进程通信(IPC)的代码,一般情况下一个进程是无法访问另一个进程的内存的。如果某些情况下仍然需要跨进程访问内存数据,这时候Android系统就要将其对象分解成能够识别的原数据,编写这一组操作的代码是一项繁琐的工作,但是AIDL对底层进行了抽象 […]

阅读更多 »

Android跨进程IPC通信Messenger

简介 Messenger可以翻译为信使,Android官方API解释如下: 它持有一个Handler的引用,以便其它Messenger发送消息给它。该类允许不同进程之间通过消息进行通信,在一个进程中服务端使用Handler创建一个Messenger,在另一个进程中客户端持有这个Messenger就可以与服务端通信了。这个类的底层是对Binder的一个简单封装,Binder是用来执行通信的。 Mes […]

阅读更多 »

Android 浅谈Fragment懒加载

在Android开发中一旦涉及到和ViewPager使用,有时候ViewPager的预加载功能很好用,可是在某些情况下我们需要这种交互,只有跳转到当前页面时才进行数据加载。在以前版本中有些实现就是将ViewPager源码copy一份出来,把预加载的常量设置为0,这样就可以屏蔽预加载功能了,随着Android版本SDK的升级,现在这种实现方式在新SDK版本已经不再起作用了。那么我们只有再找其它方式了 […]

阅读更多 »

Android ANR的产生与分析

ANR即Application Not Responding应用无响应,一般在ANR的时候会弹出一个应用无响应对话框。也许有些开发者在使用某些手机开发中不在弹出应用无响应弹出框,特别是国产手机Android4.0以上的系统中,即使在开发者选项中设置了“显示所有应用无响应-为后台应用显示无响应ANR对话框”,主要是因为在某些国产手机系统中就将该选项屏蔽了,应用超过了一定时间无响应也不会弹出ANR对话 […]

阅读更多 »

Android WebView使用解析二

现在很多流行的应用都是Hybrid App,如知乎、网易新闻、今日头条、开发者头条、掘金等等。有一个交互不知道有些开发者有没有在意到,如知乎、网易新闻这种应用,很显然新闻类应用内容都是通过他们自己的平台进行编辑发布的,这种应用也许很难注意的到,但是如开发者头条还有掘金这种应用多数内容都是用户将内容进行分发的,当我们分享过自己的文章后你会发现自己文章中的图片多了一些状态,而且不同状态的图片都不是自己 […]

阅读更多 »

浅谈Android实现夜间模式二

在上一篇文章浅谈Android实现夜间模式一,注重介绍了需要换肤View以及换肤属性的封装。本篇继续介绍剩余的部分,重点介绍如何在不影响系统创建View的情况下进行换肤,并结合插件式换肤再延伸到应用内换肤,借助于support包中对夜间模式独有资源文件支持的模式,应用内换肤可以说非常简单,而且不必recreate Activity。最后介绍一下使用Java代码动态创建的View如何换肤。 Skin […]

阅读更多 »

浅谈Android实现夜间模式一

在上篇文章从源码角度深入理解LayoutInflater.Factory主要介绍了LayoutInflater.Factory是什么,并简单介绍了一下用Factory可以做些什么,本篇文章就具体介绍一下Factory在换肤上的具体应用。 在上一篇博文中我们在Factory中打印了一下输出后的AttributeSet信息如下:

这里只 […]

阅读更多 »

从源码角度深入理解LayoutInflater.Factory

LayoutInflater在开发中使用的场合非常多,常见的如在Adapter中getView()方法中,或者在Fragment中onCreateView()中等等。开发中使用的多数场景都是通过使用LayoutInflater的inflate()方法来生成一个View的实例,但是LayoutInflater.Factory开发中还是比较少见的,除非是开发多主题模式的应用,如包含了日间模式和夜间模式 […]

阅读更多 »
1 2 3 7