自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sir的专栏

学无止境

  • 博客(204)
  • 资源 (6)
  • 收藏
  • 关注

原创 Kotlin 之 协程

协程是什么?协程基于线程,它是轻量级线程coroutine是cooperation(协作)和routine(日常)的简写协程让异步逻辑同步化,杜绝回调地狱协程的核心是:函数或一段程序被挂起,之后再在挂起的位置恢复协程的实现分为基础设施层和业务框架层,类似java中的NIO和Netty业务框架层指的是我们常用的协程函数基础设施层(原生api)实现例子 private fun doContinuation() { //协程体 val continuati

2022-01-16 13:23:53 2875 1

原创 Android 开源库发布到MavenCentral,jitpack (gradle-maven-publish-plugin+io.github域名)

背景如果你的aar库没有引用第三方库,也不需要远程仓库的话,只是想打成aar引用,那么看这个文章即可:https://blog.csdn.net/zx_android/article/details/111290928如果你需要把本地引用了很多个第三方库的工程变成aar供别人远程使用的话,那么就需要上传到MavenCentral了。如果你有自己的域名那么直接去看郭神的文章如果你跟我一样,懒得去申请域名,就可以继续往下看了。注册Sonatype账号Sonatype公司是负责维护Maven Cent

2021-12-14 19:07:55 2372

原创 Android 内存泄露(Memory Profiler和LeakCanary)

什么是内存泄露?按照传统定义,内存泄露属于对象,正在运行的程序无法访问这个对象,但这个对象仍然占据着内存这就叫内存泄露。这在c/c++里面的指针比较好理解。但是在kotlin和java中情况有些不同,因为这些程序是在Java虚拟机(JVM)里面运行的,在JVM中“垃圾回收(GC)”是个重要概念,虚拟机会在GC时首先确认GC Root,GC Root是一种对象,可以从堆外访问,如本地变量,运行线程等,随后,虚拟机会辨别所有可以通过GC Root访问的对象,它们将会保留。无法通过GC Root访问的变量会

2021-11-23 10:54:27 1974

原创 《Kotlin从零到精通Android开发》欧阳燊

1.开发环境,2.数据类型,3.控制语句,4.函数运用第一章 搭建Kotlin开发环境1.5.1 Kotlin代码和Java代码PK可以把Kotlin看做是Java的升级版,不但完全兼容Java,而且极大的精简了语法,让开发者专注于业务逻辑代码,无须关心代码框架,若想充分运用Kotlin的优异特性,除了导入Kotlin的核心库,还得导入Kotlin的扩展库和anko库Kotlin的优势...

2020-04-13 20:08:54 3058 1

原创 Android集成百度人脸识别(一)基础版SDK

首先Android Studio版本:3.2.01、注册百度账号并企业认证2、创建应用生成API Key和Secret Key3、下载对应的SDK(下载SDK的时候需要新建授权)因为下载的时候需要选择授权文件(授权文件包含报名和签名文件的MD5)如下即可下载SDK我们以基础版和人脸通行示例工程为例下载下来并解压然后导入工程:刚导入会弹出一个提示:我这边选择update...

2019-03-22 14:41:22 12573 3

原创 Android基础-VideoView (几行代码实现本地和网络视频播放)

下面看具体代码:activity_paly.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&a

2018-12-04 18:03:47 20576 8

原创 Android微信/QQ红包自动抢(AccessibilityService)

关于抢红包的文章已经很多了,我再来总结下,QQ的顺便也实现下,原理很简单,搜索屏幕中的文字,搜索到了就点击,QQ相对来说要简单一些关键代码:AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();nodeInfo.findAccessibilityNodeInfosByText("恭喜");首先,在辅助功能里面开启服务后,

2017-12-04 09:54:02 10554 2

转载 安卓APP设计规范(三)1080*1920设计稿对应开发尺寸

第一部分app设计知识:什么是安卓1080P?目前市场上,只有Android系统的手机才有1080P全高清的产品。1080P是说手机屏幕的分辨率达到1920*1080像素。目前为止,市面上Android阵营中所有品牌手机里面,全高清屏幕的手机有以下几款。小米3以上、索尼L36h(Xperia Z);OPPO X909(Find 5);HTC、一加手机 X920e(Butte

2016-11-10 16:40:33 111058 1

原创 收藏的文章

1.Android提示版本更新 http://blog.csdn.net/harvic880925/article/details/25191159 2.基于android的Socket通信 http://blog.csdn.net/maoxiao1229/article/details/22886337 百度详解TCP,UDP http://zhidao.baidu.com/link?

2016-02-22 16:34:00 765 1

原创 几分钟学会TypeScript

【代码】几分钟学会TypeScript。

2024-04-11 16:38:46 286

原创 一个完整的Flutter项目的基本构成

本篇主要总结下一个完整的Flutter项目有哪些基本构成?下面一点点开始构建。

2024-03-01 16:08:41 634 1

原创 Android 接入指纹识别

接入指纹框架:https://github.com/Tencent/soter。指纹识别

2024-02-27 17:04:04 766

原创 Android WebView中打开外部超链接无反应

什么是外部超链接?相当于是跳转到一个新的网址页面。

2023-11-22 11:08:06 638

原创 Android设置控件透明度

如下图,1A即透明度10,加在了color前面。

2023-11-20 11:07:55 589

原创 dart 中singleWhere()、firstWhere()、lastWhere() 、 where()的区别

singleWhere()用于查找唯一元素,如果不存在或找到多个元素会抛出异常;firstWhere()和lastWhere()分别用于查找第一个和最后一个符合条件的元素;where()则是用于过滤出符合条件的所有元素。

2023-11-14 14:32:15 253

原创 Flutter有状态组件StatefulWidget生命周期

StatefulWidget是Flutter中的一个有状态的组件,它的生命周期相对复杂一些。其次,生命周期的调用顺序是。

2023-11-13 14:40:18 514

原创 Flutter 手把手国际化

这样就实现了在 语言设置 页面进行语言切换了,但是重启app后语言又还原成中文了,所以采用shared_preferences库保存上一次语言。intl_zh.arb 和 intl_en.arb 是以json结构配置的,所以我们配置如下。这样页面里面的组件就引用到了语言管理类中的字段,但是还差一步初始化。分别代表中文和英文的语言数据,所以只需要修改它俩即可,文件生成完了,接下来就是把中英文插入相应的位置了,语言配置好了,接下来就是怎么引用它们了。这样语言就都配置好了,切换语言只需要调用。

2023-11-03 11:23:03 557

原创 Flutter(学前必看)基础

Dart 中 var 变量一旦赋值,类型便会确定,则不能再改变其类型// 下面代码在dart中会报错,因为变量t的类型已经确定为String,// 类型一旦确定后则不能再更改其类型。t = 1000;eat();run() {library关键字通常在定义库时,我们可以使用library关键字给库起一个名字。但目前我发现,库的名字并不影响导入,因为import语句用的是字符串URIpart关键字在之前我们使用student.dart作为演练的时候,只是将该文件作为一个库。

2023-10-26 16:39:41 168

原创 Flutter(十)网络请求和文件

注意,onHttpClientCreate会在当前dio实例内部需要创建HttpClient时调用,所以通过此回调配置HttpClient会对整个dio实例生效,如果应用需要多种代理或证书校验策略,可以创建不同的dio实例来分别实现。Android 和 iOS 的应用存储目录不同,PathProvider (opens new window)插件提供了一种平台透明的方式来访问设备文件系统上的常用位置。()来获取应用程序的文档目录,该目录用于存储只有自己可以访问的文件。演示WebSocket通信过程。

2023-08-28 16:35:30 631

原创 Flutter(九)Flutter动画和自定义组件

无论是MaterialPageRoute、CupertinoPageRoute,还是PageRouteBuilder,它们都继承自PageRouteMaterialPageRoute组件,它可以使用和平台风格一致的路由切换动画,如在iOS上会左右滑动切换,而在Android上会上下滑动切换CupertinoPageRoute是Cupertino组件库提供的iOS风格的路由切换组件,它实现的就是左右滑动切换。自定义切换动画优先考虑使用PageRouteBuildercontext,

2023-08-28 11:45:11 1074

原创 Flutter(八)事件处理与通知

一次完整的事件分为三个阶段:手指按下、手指移动、和手指抬起,而更高级别的手势(如点击、双击、拖动等)都是基于这些原始事件的。

2023-08-04 16:55:16 994

原创 Flutter(七)功能型组件

需求:再按一次退出应用用户在1秒内点击两次返回按钮时,则退出;如果间隔超过1秒则不退出。

2023-05-29 10:56:54 716

原创 Flutter(六)可滚动组件

Scrollable :用于处理滑动手势,根据滑动偏移构建 Viewport。Viewport:显示的视窗,即列表的可视区域;Sliver:视窗里显示的元素。具体布局过程:Scrollable 监听到滑动后,根据滑动偏移构建 Viewport ,Viewport 将当前视图信息和配置信息通过 SliverConstraints 传递给 Sliver,Sliver 中对子组件按需进行构建和布局。顶部和底部灰色的区域为。

2023-04-10 10:19:13 2644

原创 Flutter(五)容器类组件

如果我们只想截取图片中部40×30像素的范围应该怎么做?这时我们可以使用CustomClipper来自定义剪裁区域1.自定义一个CustomClipper//getClip()是用于获取剪裁区域的接口,由于图片大小是60×60,我们返回剪裁区域为Rect.fromLTWH(10.0, 15.0, 40.0, 30.0),即图片中部40×30像素的范围 @override//shouldReclip决定是否重新剪裁。

2023-03-10 15:25:43 468

原创 Flutter(四)布局类组件

布局类组件就是指直接或间接继承(包含)和的Widget它们一般都会有一个child或children属性用于接收子 Widget。继承关系 Widget > RenderObjectWidget > (Leaf/SingleChild/MultiChild)RenderObjectWidgetRenderObjectWidget类中定义了创建、更新RenderObject的方法,子类必须实现他们RenderObject:渲染UI界面的。

2023-03-09 17:23:55 1068

转载 APP设计规范

中文字体:苹方、冬青黑体英文字体:Helvetica、San Francisco切图时,切px(像素)单位即可,终端自动换算成pt单位iOS的app_icon是不需要带圆角切的,系统会自动处理。常规的app-icon全套图标尺寸一共有7套,分别有:40x40px、60x60px、58x58px、87x87px、80x80px、120x120px、180x180px 、1024x1024px(圆角180,系统自动处理)。

2023-03-04 11:49:40 2738

原创 Flutter(三)基础组件

LinearProgressIndicator和CircularProgressIndicator,并没有进度条尺寸的参数,但都是取父容器的尺寸作为绘制的边界,所以可以使用尺寸限制类Widget,如ConstrainedBox、SizedBox 来指定尺寸。

2023-02-28 09:39:49 323

原创 Flutter(二)第一个Flutter应用

Flutter 中是通过 Widget 嵌套 Widget 的方式来构建UI和进行实践处理的,所以记住,Flutter 中万物皆为Widget一个 StatefulWidget 类会对应一个 State 类,State表示与其对应的 StatefulWidget 要维护的状态当State被改变时,可以手动调用其setState()方法通知Flutter 框架状态发生改变,Flutter 框架在收到消息后,会重新调用其build方法重新构建 widget 树,从而达到更新UI的目的。

2023-02-27 11:46:10 738

原创 Flutter(一)介绍、Dart语言简介

纯原生开发主要面临动态化更新和开发成本两个问题,而针对这两个问题,诞生了一些跨平台的动态化框架Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart 语言开发 App,一套代码同时运行在 iOS 和 Android平台Dart 中 var 变量一旦赋值,类型便会确定,则不能再改变其类型// 下面代码在dart中会报错,因为变量t的类型已经确定为String, // 类型一旦确定后则不能再更改其类型。t = 1000;

2023-02-13 16:10:33 3911 2

原创 使用payload局部刷新机制简单实现RecyclerView列表倒计时

payload 列表倒计时 局部刷新

2023-01-28 11:45:57 353

原创 重学Kotlin(六) 函数

kotlin inline reified 高阶函数与 lambda 表达式

2022-12-08 18:11:08 269

原创 DSBridge 依赖失效了

dsbridge

2022-11-28 11:44:33 1144 4

原创 重学Kotlin(五) 泛型 类型别名 委托

委托 泛型

2022-11-23 10:55:44 177

原创 再聊组件化+gradle简单语法

组件化,gradle

2022-10-18 16:31:17 1190

原创 重学Kotlin(四) 类与对象

类与对象 kotlin

2022-10-12 16:50:14 762

原创 重学Kotlin(三) 扩展

拓展函数 kotlin

2022-10-11 11:38:24 757

原创 重学Kotlin(二)继承 属性 接口

kotlin 类与继承 构造 覆盖

2022-10-10 16:01:35 747

原创 重学Kotlin(一) 控制流:if、when、for、while

kotlin 控制流

2022-10-09 19:03:31 314

原创 Android 压缩字符串 方便二维码传输

gzip 压缩字符串 简化二维码

2022-09-08 10:36:45 1148

原创 重学Kotlin(七)集合

kotlin 集合

2022-07-25 12:17:15 1080

MVVMDemo.zip

https://blog.csdn.net/zx_android/article/details/106059379#comments_12508499

2020-06-12

Java基础+Android面试题

Java基础+Android面试题Java基础+Android面试题Java基础+Android面试题

2018-02-24

root nexus 5x ,6p工具

root nexus 5x ,6p工具root nexus 5x ,6p工具root nexus 5x ,6p工具

2018-02-11

Android设计模式

Android源码设计模式所有案例,Android源码设计模式所有案例

2018-01-24

自动抢微信QQ红包, 自动抢房

自动抢微信QQ红包, 自动抢房

2018-01-19

uxtheme.dll 64bit

使用genymotion时出现的问题

2016-03-25

空空如也

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

TA关注的人

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