自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天涯的专栏

长兄于病视神,未有形而除之,故名不出于家。中兄治病,其在毫毛,故名不出于闾。若扁鹊者,镵血脉,投毒药,副肌肤,闲而名出闻于诸侯。...

原创 Android AOSP 6.0.1 bindService 流程分析
原力计划

前面的博文分析了 Android Service 中 startService 启动方法。我们知道还可以通过 bindService 的方式,一个需要进行 Binder 通信的 Client 一般通过 bindService() 来启动 Service。 相比于用 startService 启动的...

2020-03-28 16:42:11 107 0

原创 Android AOSP 6.0.1 Handler 如何发送和处理消息?
原力计划

App 开发中经常会使用 Handler,它可实现子线程和主线程之间通信,比如子线程代表一个下载任务,下载完成以后需要更新界面上某个控件的状态。 下面是我写的一个 Demo 场景,主 Activity 中启动一个线程,每秒加一,然后使用 handler post 到主线程,刷新界面上的 TextV...

2020-03-22 19:25:03 80 0

原创 Android AOSP 6.0.1 sendBroadcast发送广播流程分析
原力计划

上一节中分析了广播注册流程,那么 sendBroadcast 又经过了那些步骤? 在 DemoService 的 onStartCommand 调用 sendBroadcast,发送之前携带了一个 String 类型的字符串。 package com.demo.framework import ...

2020-03-21 21:04:58 130 0

原创 Android AOSP 6.0.1 registerReceiver广播注册流程分析
原力计划

广播作为 Android 开发的四大组间之一,当我们发送广播以后,发生了什么?广播接收者最终如何收到了广播。 一、复盘广播的使用 在 Android 开发中使用广播分为三个步骤: 1.新建广播接收者 BroadcastReceiver; 2.注册广播接收者,分为静态和动态注册两种方式; 3.其他组...

2020-03-15 17:42:21 272 0

原创 Android AOSP 6.0.1 startService启动流程分析
原力计划

上一节跟踪了 startActivity 启动流程,这一节继续跟踪 startService 启动流程。 上面是 Android 开发者非常熟悉的 Service 生命周期。今天主要分析 startService() 在 Framework 中如何运作。 下面是将要启动的 Service 的源码...

2020-03-13 19:52:24 90 0

原创 Flutter容器类Widget使用----Padding、DecoratedBox和ConstrainedBox
原力计划

容器顾名思义是可以容纳其他 Widget 的,这一节我们学习Padding、DecoratedBox和ConstrainedBox。 一、Padding 在 Android 开发中我们给控件会设置内边距和外边距,也就是 padding 和 margin,当然父控件如果设置了 padding 实际上...

2020-03-12 21:52:06 132 0

原创 Android AOSP 6.0.1 常规startActivity启动流程分析
原力计划

在App开发过程中,界面之间的跳转非常频繁,在一个Activity中启动另一个Activity一般都是通过startActivity方法实现的。Activity如何在Framework中运作这是我多年以来的困惑之一。以下代码分析基于Android 6.0.1,因为笔者有台Nexus 5,这款老爷机...

2020-03-12 15:25:31 1329 0

原创 Android AOSP 6.0.1 framework编译

最近再查一些 framework 流程,凭着记忆 cd 到 framework/base 下 mm ,直接报错 #### make failed to build some targets(x seconds) ####。

2020-03-11 20:35:26 275 0

原创 Flutter基础Widget使用----动画图解输入框

输入框同样是UI组成的必要部分,比如常见的登陆场景,需要输入用户名和密码,多个输入框组成在一起就成了一个表单了。在 Flutter 中输入框是由 TextField Widget实现的,而表单是由 Form Widget实现的。 一、TextField TextField用于文本输入,它提供了很多...

2020-03-10 16:26:30 212 0

原创 Flutter基础Widget使用----动画图解线性和圆形进度条

LinearProgressIndicator 和 CircularProgressIndicator 也就是进度条 Widget,前一种为线性进度条,后一种为圆形进度条。 一、LinearProgressIndicator 在 Flutter 中 LinearProgressIndicator ...

2020-03-09 15:51:47 382 0

原创 Flutter基础Widget使用----动画图解Switch和Checkbox

Switch 和 Checkbox 分别代表开关按钮和复选框。这在 Android 开发中也是常用的控件。 一、Switch 创建 material 设计风格开关。Switch 非常简单,只有两种状态,要么开要么关。它继承自 StatefulWidget 。 Switch 本身不保持任何状态。 相...

2020-03-09 10:57:33 229 0

原创 Flutter基础Widget使用----Image和Icon

Image 和 Icon 都是Flutter中常用的 Widget,我们可以通过 Image Widget 来加载并显示图片,Image 的数据源可以是 asset 、文件、内存以及网络。 Icon 将图标做成字体文件,然后通过指定不同的字符而显示不同的图片。在 Android 开发中 Image...

2020-03-08 20:00:44 240 0

原创 Flutter基础Widget使用----动画图解Button

Button作为常用Widget之一,在路由之间跳转等很多场景都有用途。Material 组件库中提供了多种按钮组件如CloseButton、BackButton、IconButton、RaisedButton、FlatButton、OutlineButton、FloatingActionButt...

2020-03-07 16:17:52 132 0

原创 Flutter基础Widget使用----Text详细解读

和当年学习Android基础控件一样,Flutter也为我们准备了一些基础Widget,如此就可以开箱即用。下面我们先来研究一下Text Widget,它绝对是开发中高频的存在。 Text Widget用于显示文本,Text 继承自 StatelessWidget,它包含一些控制文本显示样式的属性...

2020-03-06 19:03:36 175 0

原创 Flutter中布局实现:线性、弹性、流式和层叠布局

Flutter中通过Row和Column来实现线性布局,类似于Android中的LinearLayout控件。Row和Column都继承自Flex,弹性布局Flex允许子组件按照一定比例来分配父容器空间。超出屏幕显示范围会自动折行的布局称为流式布局。Flutter中通过Wrap和Flow来支持流式...

2020-03-05 16:16:57 251 0

原创 Flutter中如何进行界面跳转

在android开发中界面都是对应着一个个Activity,我们通过intent从一个界面启动另外一个。路由(Route)在移动开发中通常指页面(Page),所谓路由管理,就是管理页面之间如何跳转,通常也可被称为导航管理。导航管理都会维护一个路由栈,路由入栈(push)操作对应打开一个新页面,路由...

2020-03-03 19:18:08 402 0

提示
确定要删除当前文章?
取消 删除