《Android 源码分析(0)》 Android 8.0 源码下载编译

1. 介绍

最近打算利用工作之余,学习Android源码。自从开始接触应用开发之后,这一块就一直被忽略了。今天从Ubuntu系统安装开始,到Android8.0的代码编译完成,参照别人的经验,过程还算比较顺利。

《Android 基础(零)》 Android知识框架梳理

1. 前言

最近想梳理一下Android的基础知识,让知识有一些体系的概念。

2. Android 基础知识体系

这里写图片描述

《Android 基础(四十四)》 View事件分发机制

1. 前言

View的事件分发机制,指的时当一个点击事件或者一个触摸事件发生时,Android系统如何讲这个事件进行处理,“分发“表示这里存在上下级关系,就如同部门经理分发任务一样,这就涉及到任务从何而来,分发到谁手上,是否继续分发或者返回上级,直到最终确定任务谁来处理,如何处理。

《Android 基础(四十三)》 SnapHelper

1. 简介

先看看英文介绍

1
2
3
4
5
6
7
/**
* Class intended to support snapping for a {@link RecyclerView}.
* <p>
* SnapHelper tries to handle fling as well but for this to work properly, the
* {@link RecyclerView.LayoutManager} must implement the {@link ScrollVectorProvider} interface or
* you should override {@link #onFling(int, int)} and handle fling manually.
*/

《Android 基础(四十二)》 MultiDex

1. 前言

最近做项目开发的时候,遇到一个问题,NoClassDef,NoMethod之类的错误,但是把log往前看,会发现一些Dalvik的一些报错,看到这些log之后,就会觉得后面的什么方法找不到,类没有定义什么的错误真是的应该出现,那么这些Dalvik的错误怎么解释呢?
因为类似的报错只出现在了一个同事的手机上,而且是KK版本,比较老。介绍下我的分析思路:

  1. 确定问题发生位置,注释掉(并解决因注释引起的编译错误)—> Defeat
  2. 因为是KK版本,调整minSDK到19 —> Defeat
  3. 删除或者更新引起问题的jar包 —> Defeat
  4. 考虑到MultiDex在Android5.0 以后默认支持,为兼容旧版本,手动兼容一下
    ————————>Victory

《Android 基础(四十一)》 ExpandableListView

1. 简介

看下源码中的英文介绍

《Android 基础(四十)》 FlexboxLayout

1. 简介

Flexbox-layout,是Google推出的流式布局。具体的基本介绍可以参考Github上的Wiki。看一下类的英文说明:

《Android 基础(三十九)》 SpannableString

简介

看下类的英文说明:

This is the class for text whose content is immutable but to which
markup objects can be attached and detached.
For mutable text, see {@link SpannableStringBuilder}.

装饰物可以添加和删除的定长文本。针对不定长文本,请使用SpannableStringBuilder。

《Android 基础(三十八)》 FragmentTabHost

简介

FragmentTabHost是一种特殊的TabHost,允许我们在Tab内容区域内使用Fragment。当我们得到FragmentTabHost对象后,我们必须通过调用setup(Context, FragmentManager, int)方法来完成对tabhost的初始化。
FragmentTabHost是Android4.0版本的控件, 之前被广泛的使用,但是我尽然没有使用过,因为我开始学习Android的时候版本已经来到了5.0版本,使用的比较多的是TabLayout+ViewPager这种方式。但是作为基础知识,FragmentTabHost也是需要学习一下的。

《Android 应用 之路》 每日一文简单版

1. 简介

前段时间学习Kotlin,准备找个东西下手,复杂的内容暂时也处理不了,所以选了“每日一文”的接口作为测试,主要是为了熟悉Kotlin的语法和anko中的数据库操作。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×