- 博客(8)
- 收藏
- 关注
原创 Android DownloadManager详解
从Android 2.3(API level 9)开始Android用系统服务(Service)的方式提供了Download Manager来优化处理长时间的下载操作。Download Manager处理HTTP连接并监控连接中的状态变化以及系统重启来确保每一个下载任务顺利完成。在大多数涉及到下载的情况中使用Download Manager都是不错的选择,特别是当用户切换不同的应用以后下载需要在后...
2017-02-23 18:22:59 1313
原创 深入探讨 Android LiveData:源码解析与应用实践
LiveData 是一种可观察的数据持有类,它具有生命周期感知能力,可以在活跃状态下观察数据变化,并在不活跃状态自动移除观察者,从而避免了内存泄漏的风险。- `setValue(T value)` 和 `postValue(T value)`:用于设置 LiveData 的值,其中 `setValue()` 应该在主线程中调用,而 `postValue()` 则可以在任何线程中调用。LiveData 的数据共享功能可以帮助多个组件之间共享同一份数据,从而实现数据的统一管理和更新,避免数据不一致的问题。
2017-02-17 09:06:57 1895 1
原创 探索Java中的ThreadLocal:深入理解并解析源码
由于ThreadLocal的特性,即使两个线程共享同一个ThreadLocal对象,它们获取到的值也是独立的,不会相互影响。ThreadLocal的核心在于`ThreadLocalMap`,它是一个哈希表,用于存储线程本地变量的键值对。当调用`ThreadLocal`的`set()`方法时,实际上是在当前线程的`ThreadLocalMap`中存储键值对。当调用`ThreadLocal`的`get()`方法时,实际上是在当前线程的`ThreadLocalMap`中查找对应的值。### 深入源码分析。
2017-02-16 16:09:49 5355 1
原创 深入探究 Android SparseArray:源码解析与应用实践
然而,并非所有的数据集都是密集的,有时候我们会遇到大量数据中只有少量有效项的情况,这就是所谓的“稀疏数据”。SparseArray 能够以更低的内存消耗和更快的访问速度存储和检索数据,因此在 Android 应用的开发中广泛应用。在开发过程中,根据实际情况选择合适的数据结构是至关重要的,SparseArray 作为一种特殊的数据结构,可以在某些场景下为我们提供更好的解决方案。SparseArray 的实现原理基于两个重要的组件:一个用于存储键的整型数组和一个用于存储值的 Object 数组。
2017-02-15 08:36:34 1335 1
原创 git教程及在android studio中的使用(五):将文件纳入git管理和提交更改至本地仓库
我们新建了一个文件夹MyProject,并用git init命令使该项目纳入git管理。git status 命令用来查看当前仓库所处的状态。
2017-02-14 11:48:44 1150 1
原创 git教程及在android studio中的使用(四):创建git仓库
git提示我们初始化了一个空仓库。即使MyProject不是空文件夹,它也会提示初始化了一个空仓库。当使用git init初始化一个目录后,这个目录就成为git项目的根目录。该目录下的文件不会自动纳入git管理,需要显式添加(见下一篇博文)。
2017-02-08 08:50:02 746
原创 git教程及在android studio中的使用(三):设置和查询git的配置信息
git config 命令用来配置和查询git的配置信息。git用户提交对仓库的更改时,会留下操作历史,用户名和邮箱用来标识git用户。例如下面的一条提交记录,Author即表示git用户。
2017-02-06 16:58:03 1049
原创 git教程及在android studio中的使用(二):git基本工作原理
这里讲的是面向git使用者这一层的工作原理,要想深入理解git,需要明白它的工作原理。假设,现在有一个git项目文件夹MyRepo。我们以此为例,讲述git是如何工作的。①为整个git项目文件夹,即MyRepo②为工作区(work directory),MyRepo文件夹下,除.git文件夹之外即为工作区。红色且标有“f”标签的圆圈代表位于工作区的各个文件。工作区是你增加、删除、修...
2017-02-04 10:39:48 2142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人