自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

圆号本号

一只可爱又逗比的大厂程序员 @腾讯

原创 Flutter Mudule 接入 Android native「 2020 大前端混合开发 」

一、前言2020 年 flutter 不再是什么新的技术,以‘闲鱼’为首各大 app 纷纷拥抱 flutter,目前最理想的就是完全用 flutter 开发,但是由于各自的 app 都以成型,完全抛弃以前的代码全面上 flutter ,无论是人力还是物力都是不切实际的,所以目前大多数产品的思路都是进行混合开发,逐步 flutter 化由于各大 app 牵入 flutter 较早,使用技术过于老旧,鉴于这一点,我结合 Google 最新的官方文档和网上的总结,研究出一套切实可行的方案,供大家参考二、

2020-07-30 21:44:48 46

原创 「IOS 网络踩坑」错误 Error Domain=NSURLErrorDomain Code=-1004

一、原因两种可能1.1 网络原因请检查你的网络是否连接建议使用浏览器搜索网页,因为 App 可能自带缓存1.2 使用 LocalHost本地测试时使用 LocalHost 上线时可能报错解决方案转:StackOverFlow1.3 IOS App 传输安全项目目录下找到 Info.plist位置:项目目录文件夹下查找,用文本编辑器打开找到 NSAppTransportSecurity -> NSExceptionDomains 位置:对于添加权限<key&

2020-07-25 14:55:00 730

原创 【Android studio】No cached version .. available for offline mode - Could not resolve all dependencies

一、今天解决的一个问题报错如下:「如果我的方案对你有用,记得点赞哦」FAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring root project 'MyApplication2'.> Could not resolve all dependencies for configuration ':classpath'. > Could not res

2020-05-12 13:18:03 148 2

原创 2020 还不会泡 Github 你就落伍了
原力计划

前言回想起两年前缸接触 GitHub 那会儿,就发现网上完全搜不到一篇关于 github 使用的文章,虽然自己倒腾几下慢慢的也就上手了,但毕竟花费了不少时间。时间对每个人都是宝贵的,一直很好奇 GitHub 这么重要的工具为什么没人写一份全面一点的指南呢?当然现在已经找到了这个问题的答案最后:本文仅针对初学者设计,如果你刚入编程的坑,对 Github 使用一头雾水,请直接点击旁边的‘点赞’...

2020-03-16 09:53:13 1247 7

原创 「2020 新手必备 」极速入门 Retrofit + OkHttp 网络框架到实战,这一篇就够了!

老生常谈什么是 Retrofit ?Retrofit 早已不是什么新技术了,想必看到这篇博客的大家都早已熟知,这里就不啰嗦了,简单介绍下:Retrofit 是一个针对 Java 和 Android 的设计的 REST 客户机。它通过基于 REST 的 web 服务检索和上传 JSON (或其他结构化数据)变得相对容易。在使用中,您可以配置用于数据序列化的转换器。对于 JSON ,通常使用...

2019-12-23 12:32:59 348 2

原创 结合源码,重温 Android View 的事件处理知多少 ?

通过ContentResolver获取ContentProvider内容的基本步骤得到ContentResolver类对象:ContentResolver cr = getContentResolver()。定义要查询的字段String数组。使用cr.query();返回一个Cursor对象。使用while循环得到Cursor里面的内容。如何访问自定义 ContentProvider通...

2019-11-25 14:38:25 139

原创 Android 这 13 道 ContentProvider 面试题,你都会了吗?

一、ContentProviderContentProvider 应用程序间非常通用的共享数据的一种方式,也是 Android 官方推荐的方式。Android 中许多系统应用都使用该方式实现数据共享,比如通讯录、短信等。1.1 Android 为什么要设计 ContentProvider 这个组件?很多做 Android 开发的人都不怎么使用它,觉得直接读取数据库会更简单方便。...

2019-11-09 08:53:30 543

原创 17 个必须掌握的 BroadcastReceiver 知识点「建议收藏」

文章目录BroadcastReceiver的实现原理是什么?广播作为Android组件间的通信方式,可以使用在如下场景:二、BroadcastReceiver类型1.无序广播2.有序广播四、本地广播Sticky Broadcast粘性广播四、LocalBroadcastManager 详解特点:源码分析 :BroadcastReceiver安全问题好处:1.请描述一下 BroadcastRecei...

2019-11-07 13:56:36 226 1

原创 23 个重难点突破,带你吃透 Service 知识点「长达 1W+ 字」

前言学 Android 有一段时间了,想必不少人也和我一样,平时经常东学西凑,感觉知识点有些凌乱难成体系。所以趁着这几天忙里偷闲,把学的东西归纳下,捋捋思路。这篇文章主要针对 Service 相关的知识点,进行详细的梳理,祝大家食用愉快!文章目录方便大家学习,我在 GitHub 建立了 仓库仓库内容与博客同步更新。由于我在 稀土掘金 简书 CSDN 博客园 等站点,都有新...

2019-11-03 10:47:05 469 6

原创 Activity 的 36 大难点,你会几个?「建议收藏」

前言学 Android 有一段时间了,一直都只顾着学新的东西,最近发现很多平常用的少的东西竟让都忘了,趁着这两天,打算把有关 Activity 的内容以问题的形式梳理出来,也供大家查缺补漏。本文中,我将一改往日写博客的习惯,全文用 XMind 将所有知识点以思维导图的形式呈现,欢迎大家食用~~神图一张图带你了解 Activity文章目录前言神图一、生命周期1.1 dialog弹...

2019-10-30 11:03:19 679 4

原创 「Android」四大组件,你真的都掌握了?

Activity生命周期Activity A 启动另一个Activity B,回调如下:Activity A 的onPause() → Activity B的onCreate() → onStart() → onResume() → Activity A的onStop();如果B是透明主题又或则是个DialogActivity,则不会回调A的onStop;使用onSaveIn...

2019-10-24 17:26:09 2355

原创 7 道高频面试算法题,你都会了吗?「矩阵 + 位运算 + LRU」

矩阵螺旋矩阵给定一个包含 m x n 个要素的矩阵,(m 行, n 列),按照螺旋顺序,返回该矩阵中的所有要素。public List<Integer> spiralOrder(int[][] matrix) { ArrayList<Integer> rst = new ArrayList<Integer>(); if(matrix...

2019-10-21 20:58:04 134

原创 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」之 字符串处理+动态规划 合集!

字符串处理生成括号给定 n,表示有 n 对括号, 请写一个函数以将其生成所有的括号组合,并返回组合结果。public List<String> generateParenthesis(int n) { List<String> res = new ArrayList<>(); helper(n, n, "", res); re...

2019-10-19 17:08:04 68

原创 「面试高频」二叉搜索树+双指针+贪心 算法题指北

二叉搜索树验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 :输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,...

2019-10-16 14:29:25 79

原创 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」之 二分 + 哈希表 + 堆 + 优先队列 部分!

二分二分搜索public int binarySearch(int[] arr, int start, int end, int hkey){ if (start > end) { return -1; } int mid = start + (end - start) / 2; //防止溢位 if (arr[mid] > h...

2019-10-15 14:17:46 84

原创 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」必问之 链表 + 栈 + 队列 部分!

链表public class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; }}删除节点public class ListNode { int val; ListNode next; ...

2019-10-13 10:36:30 121

原创 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」必问之 排序 + 二叉树 部分!

排序冒泡排序思路:1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何视频:数据结构排序算法之冒泡排序演示示例代码:publ...

2019-10-11 08:18:06 142

翻译 高效解决「SQLite」数据库并发访问安全问题,只这一篇就够了

Concurrent database access本文译自:https://dmytrodanylyk.com/articles/concurrent-database/对于 Android Dev 而言,有关 SQLite 的操作再经常不过了,相比你一定经历过控制台一片爆红的情况,这不禁让我们疑问:SQLite 到底是线程安全的吗?OK 废话不多说,我们 ⬇️直接开始首先,假设...

2019-10-07 09:33:37 188

原创 每个人都要学的图片压缩终极奥义,有效解决 Android 程序 OOM

由来在我们编写 Android 程序的时候,几乎永远逃避不了图片压缩的难题。除了应用图标之外,我们所要显示的图片基本上只有两个来源:来自网络下载本地相册中加载不管是网上下载下来的也好,还是从系统图片库中读取的图片,都有一个相同的特点:像素一帮较高。同时我们都知道,Android 系统分配给我们每个应用的内存是有限的,由于解析、加载一张图片,需要占用的内存大小,是远大于图片自身大小的...

2019-10-01 17:24:38 105

原创 Android 让你的 Room 搭上 RxJava 的顺风车 从重复的代码中解脱出来

什么是 Room ?谷歌为了帮助开发者解决 Android 架构设计问题,在 Google I/O 2017 发布一套帮助开发者解决 Android 架构设计的方案:Android Architecture Components,而我们的 Room 正是这套方案的两大模块之一。定义:数据库解决方案组成:Database、Entity、DAO为什么本文叫谷歌范例?为了方便开发者进行...

2019-09-24 17:54:26 137

翻译 在 Mac 上安装 Git ,生成 SSH 密钥用于 GitHub 授权

在本教程中,将介绍如何在 Mac 上安装 Git,如何生成SSH密钥,以及如何将您的公共 SSH 密钥上传到 GitHub 帐户进行授权。如何在你的 Mac 上安装 Git ?打开‘终端’输入如下命令:$ brew install git具体方法查看其官方文档 :https://brew.sh/这将在您的系统上安装 Git。若要确认是否安装成功,请输入:$ git --v...

2019-09-20 09:48:50 445

翻译 ViewModel 和 ViewModelProvider.Factory:ViewModel 的创建者

朋友们好,今天我向大家介绍下 ViewModel 中如何使用 ViewModelProvider.Factory.现在开始所以,我们首要问题是:什么是 ViewModelProvider.Factory ?让我们在不使用 ViewModelProvider.Factory 的情况下,试着创建一个 ViewModel 看看:在活动中实例化:有没有人注意到:当我们使用 ViewMo...

2019-09-15 20:20:34 3829 2

原创 数值分析 有效数字计算

与高中的有效数字有些不同,数值分析中的有效数字定义如下:定义设数x是数x的近似值,如果x的绝对误差限是它的某一数位的半个单位,并且从x左起第一个非零数字到该数位共有n位,则称这n个数字为x的有效数字,也称用x近似x时具有n位有效数字。—《数值分析(第2版)》张铁 阎家斌 冶金工业出版社举例接下来,我们以几道例题为例:例一首先,我们可以获得 |π - x1| 的值 :0.001...

2019-08-27 21:00:29 1344

原创 Navicat 从破解下载到连接 SQLite ,这一篇就够了!

Navicat 是目前市面上使用及其广泛的一款可视化数据库开发管理软件,它不仅可以连接本地/服务端的 MySQL 数据库,甚至还可以连接移动端虚拟机/真机,上的 SQLite 数据库,本文将带领你下载破解版 Navicat ,并连接上虚拟机的数据库破解下载篇作为一个个人开发者,正版 Navicat 实在是太贵了,但是网络上的教程基本都是先下载,在破解的思路,这里我给大家一个连接,大家直接...

2019-07-19 15:01:32 127 1

原创 单例模式-全局可用的 context 对象,这一篇就够了

单例模式在各个方面都有着极为广泛的使用,所谓单例,顾名思义就是整个程序中只有一个该类的实例,所以它成功保证了整个程序的生命周期内该类的对象只能创建一次,并且提供全局唯一访问该类的方法:getInstance()使用关于单例模式主要分为两类:懒汉模式饿汉模式由于饿汉模式是线程安全的,所以通常情况下,我们都尽量采用饿汉模式,具体原因常见这位大佬的博文:点击前往本文主要结合 And...

2019-07-17 17:13:04 218

原创 缩放手势 ScaleGestureDetector 源码解析,这一篇就够了

其实在我们日常的编程中,对于缩放手势的使用并不是很经常,这一手势主要是用在图片浏览方面,比如下方例子。但是(敲重点),作为 Android 入门的基础来说,学习 ScaleGestureDetector 的使用,算是不得不过的一道坎,好在 ScaleGestureDetector 使用起来非常简单,就是源码分析上得花些功夫。本文首先将简单的介绍下 ScaleGestureDetector 的使...

2019-06-30 14:31:21 133

原创 看完这篇还不会 GestureDetector 手势检测,我跪搓衣板!

引言在 android 开发过程中,我们经常需要对一些手势,如:单击、双击、长按、滑动、缩放等,进行监测。这时也就引出了手势监测的概念,所谓的手势监测,说白了就是对于 GestureDetector 的用法的使用和注意要点的学习。注:由于缩放手势独有的复杂性,我打算后期将其单独拿出来归纳总结。像网上其他将手势监听的博客一样,本文将以双击事件为引子,逐步展开探讨 Android 手...

2019-06-29 14:22:30 87

原创 Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了

前言我们都知道 Android 自带了 Roate Scale Translate Alpha 多种框架动画,我们可以通过她们实现丰富的动画效果,但是这些宽家动画却有一个致命的弱点,它们只是改变了 View 显示的大小,而没有改变 View 的响应区域。这时以 ObjectAnimator、ValueAnimator 为代表的属性动画也就应运而生了。...

2019-06-19 10:06:34 577

原创 Android 逐帧动画( Drawable 动画),这一篇就够了

前言作为 Android 最常见的两种动画形式,逐帧动画( Drawable 动画),有着极其广泛的应用,它的原理与早起的电影以及 GIF 类似,就是把一张的图,按顺序快速切换,这样一来看上去就好像会动一样。实例,大家先看看效果大家明显可以看到这是一个动图,但是它并非一个 GIF 它是由八张单独的图片,间隔 200ms 连续播放所实现的效果。实现方法这里我给大家介绍两种...

2019-06-17 13:31:42 129

原创 看完这篇再不会 View 的动画框架,我跪搓衣板

引言众所周知,一款没有动画的 app,就像没有灵魂的肉体,给用户的体验性很差。现在的 android 在动画效果方面早已空前的发展,1.View 动画框架 2.属性动画框架 3.Drawable 动画。相比后后两者,View 动画框架在 Android 的最开始就已经出现,即有着非常容易学习的有点,却也有着用法太死的毛病,但对于初学者而言,猪狗实现各种可选的效果了。组成对于 Vie...

2019-06-14 22:09:44 136

原创 Android 自定义时钟控件 时针、分针、秒针的绘制这一篇就够了

前言对于 Android 开发者来说,自定义 View 是绕不开的一个坎。二对一自定义 View 自定义时钟必然是首选,那么我们该如何绘制自定义时钟呢?本篇我结合 github 上一个有趣的三方库,来给大家讲讲如何作出我们的第一个时钟现在开始:目录前言现在开始:前期准备:重写 onMessure() 方法配置 xml 文件开始搭建之旅获取当前时间...

2019-06-12 21:19:49 855

转载 intellij idea常用快捷键

intellij idea常用快捷键Ctrl快捷键 介绍Ctrl + F 在当前文件进行文本查找 (必备)Ctrl + R 在当前文件进行文本替换 (必备)Ctrl + Z 撤销 (必备)Ctrl + Y 删除光标所在行 或 删除选中的行 (必备)Ctrl + X 剪切光标所在行 或 剪切选择内容Ctrl + C 复制光标所在行 或 复制选择内容Ctrl + D 复制光标所在行 ...

2019-06-11 00:17:25 48

原创 android 自定义控件之-绘制钟表盘

引言Android 自定义 View 应用非常广泛,最近逛 github 是偶然发现一个 Demo 感觉写的很好,我结合着这个项目的内容,给大家讲讲如何绘制时钟表盘,也算是加深下自己对自定义 View 的理解,涉及内容比较多,大家慢慢吸收。最后效果:步骤:目录引言最后效果:步骤:让我们先搭建这个 View绘制外围小时圆环的准备工作开始绘制外围圆环运行...

2019-06-10 23:06:19 152

原创 Android 进阶自定义 ViewGroup 自定义布局

前言在我们的实际生活中, 经常需要用到自定义控件,比如自定义圆形头像,自定义计步器等等。但有时我们不仅需要自定义控件,举个例子,FloatingActionButton 大家都很常用,所以大家也很经常会有一种需求,点击某个 FloatingActionButton 弹出更多 FloatingActionButton ,这个需求的一般思路是写 n 个 button 然后再一个个的去设置动画效果。...

2019-06-07 16:49:46 737 1

原创 Android 自定义 view 之自定义布局属性 xml 属性

引言上一篇点击查看 https://blog.csdn.net/qq_43377749/article/details/91045764我们讲到了自定义 view 的基本方式,但是我们也发现,使用这种方式,用户(广大程序员同胞们)只能使用父类控件的属性,但是我们有时需要更多的功能,比如:图片控件需要改变透明度,卡片控件需要设定阴影值等等,那么父类控件的属性显然不够用了,这时我们就要开始实现自...

2019-06-07 12:54:40 976 1

原创 Android 自定义控件 自定义 View 入门必备

自定义 View在实际使用的过程中,我们经常会接到这样一些需求,比如环形计步器,柱状图表,圆形头像等等,这时我们通常的思路是去Google 一下,看看 github 上是否有我们需要的这些控件,但是如果网上收不到这样的控件呢?这时我们经常需要自定义 View 来满足需求。接下来让我们开启自定义控件之路关于自定义控件,一般辉遵循一下几个套路首先重写 onMeasure() 方法...

2019-06-06 16:15:44 847 1

原创 Android 精通活动「activity」四大启动模式

活动的四大启动模式活动即「activity」对于 Android 应用来说,有着不可剥离的作用,对于初学者一般来说,都只是使用了默认(standard)模式,不管发生什么情况,只要需要活动跳转,就直接新建出一个活动,随着项目越写越复杂,活动也越写越多,反复的切换活动不仅给内存带来了负担,更是给用户带来了极大的不便。活动「activity」四大启动模式standard、 sin...

2019-06-04 01:09:17 310 1

原创 Android 入门知识点梳理之一 四大组件

四大组件学 android 也有快一年了,打算好好梳理下自己学过的知识,方便巩固、复习Android 四大组件Android四大组件 --- Activity生命周期:onCreate()->onStart()- >onResume()->onPause()->onStop()->onDestroy()Activit...

2019-06-03 17:01:07 510

原创 Android 四大组件 BroadcastReceiver 深入剖析注册与使用!

BroadcastReceiver作为 Android 的四大组件之一 BroadcastReceiver 有着非常广泛的使用。要想使用 BroadcastReceiver 搜先高搞明白 Broadcast 目前来看,Broadcast 也就是所谓的广播,主要分为两种:普通广播 和 有序广播。故名思意,Broadcast 就是用于发出消息,而 BroadcastReceiver 则是用来接...

2019-06-02 23:11:27 313 1

原创 IntentService 高级使用指南

IntentService在实际过程中,我们经常会遇到一些需求,比如在后台加载一些图片,或者下载一些文件,这个时候我们通常就会用到 Service ,但是 service 有个弊端:Service不会专门启动一条单独的进程,Service与它所在应用位于同一个进程中;Service也不是专门一条新线程,因此不应该在Service中直接处理耗时的任务;所以如果我们的 Service 是要为活动服...

2019-06-02 23:11:14 318 1

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