自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (17)
  • 收藏
  • 关注

原创 Android Jetpack 之 Navigation

1. Navigation 的定义Navigation 是指支持用户导航、进入和退出应用中不同内容片段的交互。Android Jetpack 的导航组件可帮助实现导航,无论是简单的按钮点击,还是应用栏和抽屉式导航栏等更为复杂的模式,该组件均可应对。导航组件还通过遵循一套既定原则来确保一致且可预测的用户体验。导航组件由以下三个关键部分组成:导航图:在一个集中位置包含所有导航相关信息的 X...

2019-10-25 04:49:28 521

原创 Android Jetpack 之 DataBinding

1.DataBinding通过声明的方式,将 xml 布局中的组件与程序中的源数据进行绑定的框架库。当数据变化的同时组件能够及时同步并更新,减少Activity 中 View 的定义以及初始化,代码更加简洁。2.DataBinding 的使用2.1 在项目中对应 module 的 build.gradle 文件中添加 dataBinding 可用的配置:android { ...

2019-10-24 13:16:14 577

原创 Android Jetpack 之 LiveData

1. LiveData是什么LiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, f...

2019-10-24 00:11:04 274

原创 Android Jetpack 之 LifeCycle

1. JetpackJetpack 是一套库、工具和指南的集合,并不是一个框架或者组件。Jetpack 包含与平台 API 解除捆绑的 androidx.*软件包库。Android Jetpack 组件是库的集合,这些库是为协同工作而构建的,不过也可以单独采用,可全部使用,也可混合搭配!Lifecycle 就是 Android Jetpack 组件之一。2.LifecycleL...

2019-10-24 00:09:46 440

原创 FFmpeg 的编译

之前在投简历很多公司都做短视频相关的,都要求懂FFmpeg,抖音真的带动了一大波短视频相关岗位哈。下面就记录下使用的相关步骤:1.编译环境用的是我买的一个阿里云。也可以在Windows下安装VMWare搭建虚拟机。可以参考我之前写的文章:VMware虚拟机搭建。2.准备 NDK下载:wget https://dl.google.com/android/repositor...

2019-10-20 18:30:32 1216

原创 Android 自定义控件:继承View

在自定义控件中,一种类型就是继承自 View,通过画笔,从无到有画出一个符合需求的控件。在工作中,相机模块中,需要做一个点击后的聚焦框,就是通过继承 View,从无到有画出来的。实现代码如下:package cn.zzw.customview.custom.view;import android.content.Context;import android.graphics.Can...

2019-10-19 22:43:22 395

原创 Android 系统启动流程(二)

1. 前言在Android 系统启动流程(一)中,描述了 Android 系统启动流程中从按下 Power 到 Zygote 进程的启动。最终 Zygote 启动了 SystemServer,并调用了 SystemServer 中的 main 方法,这里继续分析启动 SystemServer 后的流程。2.SystemServer 源码SystemServer 的入口为 main ...

2019-10-19 00:44:37 313

原创 Android 系统启动流程(一)

1. 前言看过很多关于 Android 系统启动流程的博客,对此都是半知半解。坚信只有自己将流程走一遍,才能有更进一步的认知,以及更深的理解。此篇文章算是自己在梳理 Android 系统启动流程所做的记录。由于自己对 C 以及 C++ 了解的不足,这里只从 Java 层开始追。此流程是基于 Android 9.0 的源码做出的记录,具体源码链接:http://androidxref.com/9...

2019-10-16 22:13:54 446

原创 Serializable 和 Parcelable 的用法和区别

1. Serializable 和 Parcelable 的用法Android 开发过程中,需要对对象进行存储和传递,而对于对象的存储传递就需要用到Serializable 和 Parcelable 对对象进行序列化和反序列化。1.1Serializable 的使用对象类实现Serializable 接口,并定义serialVersionUID:package cn.zz...

2019-10-15 20:38:38 285

原创 LruCache 源码解析

1. 概述对于Android 开发者,LruCache 肯定不陌生,几乎所有的图片缓存框架都会用到它来实现内存缓存等,可见LruCache 在 Android 开发中的重要性。LRU 是Least Recently Used 的缩写,近期最少使用的意思。当我们进行缓存的时候,如果缓存满了,会先淘汰使用最少的缓存对象。因为在 Android 中为每个APP分配的内存大小有限,而 LruCa...

2019-10-08 01:26:58 422

原创 LinkedHashMap 源码解析

1. 概述大部分的 Android 开发人员对LinkedHashMap 的认识,应该都是从 Lrucache 里面的来的吧。Lrucache 只所以实现开始访问排序,底层原理就是靠的LinkedHashMap。LinkedHashMap 的例子如下:package zzw.cn.testlinkedhashmap;import java.util.Iterator;impor...

2019-10-07 21:30:17 230

原创 Android 自定义控件:Path

在 Canvas 的学习中,只能画一些比较规则的图形,如方形,圆,弧线等。如果要画一些比较复杂的图形,只要计算好坐标,就需用到 Path 类就能做到,以及著名的贝塞尔曲线也是用 Path 来实现。这里列举下 Path 常用的方法。画笔等相关设置为: private void init() { mPaint = new Paint(); mPaint....

2019-10-05 21:01:09 249

原创 Android 自定义控件:Canvas

在 Android 自定义控件中,如果继承 View,需要进行绘图,就需要用到Canvas 。Canvas 称为画布,能够在上面绘制各种东西,是 Android 平台 2D 图形绘制的基础。当创建自定义View类时候,继承 View,就可以重写方法 onDraw(),在方法中的参数就是 Canvas 对象: @Override protected void onDraw(Ca...

2019-10-05 14:57:48 538

原创 Android 自定义控件:组合控件

自定义组合控件就是多个控件组合起来成为一个新的控件,用来解决多次重复的使用同一类型的布局,比如对话框、APP的标题栏等。这里列举一个最近项目开发中自定义的组合控件。先看做好的效果:自定义的选择按钮按钮选中的样式:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schema...

2019-10-02 23:50:48 354

原创 Android 全局异常处理

在 Android 开发中,谁都不想自己的 APP 出现异常,哪怕代码写得再好,也免不了出现异常的情况。而当出现异常后,要做的就是全局捕获异常以及将异常收集起来并且回传给服务端,方便对异常的解决。处理的方法:CrashHandler 类:package cn.zzw.crashdemo;import android.content.Context;import androi...

2019-10-02 22:01:34 295

原创 Android 热修复:阿里Sophix的集成

1. 前言当我们刚发布一个版本后,突然发现了一个严重的bug。由于刚发布版本,这时候如果再紧接着发布一个版本,这时候给用户的体验肯定很差。而热修复技术可以在用户不知道的情况下修复已知的bug。目前各大厂都推出了自己的热修复方案,各个方案的差别如下(这是阿里巴巴给的对比):热修复方案比较平台 阿里云移动热修复 Amigo(饿了吗) Tinker(微信) Qzone...

2019-10-01 18:45:41 674

ComponentDemo.zip

Android组件化(https://blog.csdn.net/zzw0221/article/details/105357871)相关代码

2020-05-22

BitmapDemo.zip

https://blog.csdn.net/zzw0221/article/details/102876413 此篇文章的例子。

2019-11-09

Messenger示例代码

文章 Android 进程间通信:Messenger 中的示例代码,blog地址:https://blog.csdn.net/zzw0221/article/details/93399407

2019-06-26

AndroidAIDLDemo.zip

blog:Android 进程间通信:AIDL(https://blog.csdn.net/zzw0221/article/details/92616358)中的实例所对应的代码。

2019-06-19

JniDemo2.zip

jni动态调用的例子,请看对应的blog:https://blog.csdn.net/zzw0221/article/details/90612038

2019-05-28

JniDemo1.zip

文章JNI介绍(一)(https://blog.csdn.net/zzw0221/article/details/90311024)中的代码。

2019-05-25

android多线程断点下载

android多线程断点下载,可支持断点下载

2014-08-06

自定义ProgressDialog

自定义ProgressDialog,彻底摆脱系统自带的其丑无比的ProgressDialog

2014-07-08

自定义Spinner--利用TextView以及Dialog组合

自定义的Spinner,利用TextView以及Dialog组合而成的Spinner

2014-06-21

异步扫描SD卡

异步扫描SD卡 AsyncTask 希望对大家有帮助

2014-06-08

C#微信公众平台二次开发例子

C#微信公众平台二次开发例子,希望能够对大家有用

2014-06-08

SlidingMenu

SlidingMenu,整理好的SlidingMenu

2014-06-05

Android圆形菜单

Android圆形Menu 特殊的菜单效果

2014-06-05

Android Studio使用指南

Android Studio,开发Android工具,比Eclipse更专业的Android开发工具。教你如何使用Android Studio

2014-06-05

JAVA经典编程50题附答案.doc

JAVA经典编程50题附答案,是学习java最常遇到的几个问题,希望能对学习java有所帮助!

2014-03-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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