
Android进阶
文章平均质量分 91
Android之禅
和你分享有价值有思考的技术文章。
公众号 “Android之禅”
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android上唤起 APP 场景的思考总结
背景 恰逢项目小版本要上一个 极速版轻应用内嵌于主端 APP 内,在 APP 启动时通过读取配置决定是否优先显示轻应用界面。因此,在启动 APP 时需要实时进行不同场景切换。 问题来源 一开始我们通过新增一个 LauncherActivity 用于中转不同场景的切换,原 APP 主页面处理任何 Intent 的逻辑将需要从旧启动页进行 “继承” 处理。这意味着 LauncherActivity 收到任何 Intent 处理的逻辑需从旧启动页代码中拷贝。在继承 LauncherActivity 之后我们发现原创 2020-11-27 20:57:25 · 266 阅读 · 0 评论 -
Android IPC之Messenger解析
一、概述 说到Android进程间通信,大家肯定能想到的是编写aidl文件,然后通过aapt生成的类方便的完成服务端,以及客户端代码的编写。如果你对这个过程不熟悉,可以查看Android aidl Binder框架浅析; 当然今天要说的通信方式肯定不是通过编写aidl文件的方式,那么有请今天的主角:Messenger。ok,这是什么样的一个类呢?我们看下注释 This allow转载 2015-10-11 22:26:14 · 1013 阅读 · 0 评论 -
Android源码分析—带你认识不一样的AsyncTask(串并行)
前言 什么是AsyncTask,相信搞过android开发的朋友们都不陌生。AsyncTask内部封装了Thread和Handler,可以让我们在后台进行计算并且把计算的结果及时更新到UI上,而这些正是Thread+Handler所做的事情,没错,AsyncTask的作用就是简化Thread+Handler,让我们能够通过更少的代码来完成一样的功能,这里,我要说明的是:AsyncTask只是转载 2016-02-23 16:21:13 · 3111 阅读 · 0 评论 -
Android内存优化神器——MAT入门使用
MAT简介 MAT介绍 + MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。转载 2015-10-10 16:35:15 · 2421 阅读 · 0 评论 -
Android内存优化神器——MAT使用进阶
第一篇文章《Android内存优化之一:MAT使用入门》介绍了MAT的基本使用方法,包括下载、安装、打开HPROF文件,和一些基本的视图。这篇文章介绍一下一些最新的工具使用方法,和第一篇中没有提到的一些其他的用法。 Java的内存泄露的特点 + Java中的内存泄露主要特征:可达,无用无用指的是创建了但是不再使用之后没有释放能重用但是却创建了新的对象进行处理 MAT使用技巧转载 2015-10-10 16:37:46 · 2015 阅读 · 0 评论 -
Android内存优化之OOM全解
Android的内存优化是性能优化中很重要的一部分,而避免OOM又是内存优化中比较核心的一点。这是一篇关于内存优化中如何避免OOM的总结性概要文章,内容大多都是和OOM有关的实践总结概要。理解错误或是偏差的地方,还请多包涵指正,谢谢! (一)Android的内存管理机制 Google在Android的官网上有这样一篇文章,初步介绍了Android是如何管理应用的进程与内存分配:http转载 2015-10-10 11:45:07 · 2835 阅读 · 0 评论 -
AndroidStudio上的第一个jni程序——NDK入门
之前在Eclipse上折磨过Jni编程,自从换了AndroidStudio之后,感觉写JNI变得很麻烦,今晚重新配置了下AndroidStudio,并安装了NDK包。 下面是在AndroidStudio上编写一个Jni小程序的过程,仅供新手参考和理清思路。 我的IDE版本及gradle版本 NDK 版本使用android-ndk-r10,这里提供国内下载链接:点击打开链接 点击下原创 2015-10-08 21:53:23 · 3470 阅读 · 3 评论 -
Android的任务和回退栈
一个应用通常有多个Activity。每个activity围绕一个特定的功能设计,用户可以操作它并且可以启动其他的activity。举个例子,一个电子邮件应用可能有一个activity去呈现新邮件列表。当用户选择了一封邮件,会打开一个新的activity来呈现邮件内容。 一个activity可以启动另一个应用的activity。例如,如果你的应用想要发送ema转载 2015-08-25 11:17:05 · 1786 阅读 · 0 评论 -
序列化手段(1)——parcel例子详解
Parcel其翻译为“包袱”、“包裹”。在Android系统中Binder进程间通信(IPC)中经常使用到Parcel类对象来实现客户端和服务端的数据交互,而AIDL技术也是通过Parcel来实现交互。 查阅Android源码Parcel类,其中常用方法有 obtain() 获得一个新的parcel对象,相当于java中new一个对象 dataSize() 得到当前parcel对象的原创 2015-02-13 09:52:41 · 3859 阅读 · 0 评论 -
Serializable和Parcelable应该懂得的几个场景
1. Serialable接口 对于Serializable,类只需要实现Serializable接口,并提供一个序列化版本id(serialVersionUID)即可。当然这其实远远不够,下面对Serializable更深一点。 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发转载 2015-02-13 17:22:22 · 3715 阅读 · 0 评论 -
序列化手段(2)——Serializable和Parcelable的实现演示
如果都了解过Parcel类的实现,那么其基本只序列化基本类型的特性还不能满足我们的需求(事实上android中Binder的IPC通信中,Parcel对象也能传递Parcel对象,现实编程用得极少)。具体的Parcel类这里不做介绍。点击查看Parcel类详解 Serializable和Parcelable在现实中的应用场景,有个网友写得非常nice,强烈推荐大家有空看下。点击查看Serial原创 2015-02-13 18:16:06 · 1991 阅读 · 0 评论