- 博客(206)
- 资源 (6)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Kotlin 之 协程
协程是什么?协程基于线程,它是轻量级线程coroutine是cooperation(协作)和routine(日常)的简写协程让异步逻辑同步化,杜绝回调地狱协程的核心是:函数或一段程序被挂起,之后再在挂起的位置恢复协程的实现分为基础设施层和业务框架层,类似java中的NIO和Netty业务框架层指的是我们常用的协程函数基础设施层(原生api)实现例子 private fun doContinuation() { //协程体 val continuati
2022-01-16 13:23:53
2911
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
2480
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
2006
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 《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
3164
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android集成百度人脸识别(一)基础版SDK
首先Android Studio版本:3.2.01、注册百度账号并企业认证2、创建应用生成API Key和Secret Key3、下载对应的SDK(下载SDK的时候需要新建授权)因为下载的时候需要选择授权文件(授权文件包含报名和签名文件的MD5)如下即可下载SDK我们以基础版和人脸通行示例工程为例下载下来并解压然后导入工程:刚导入会弹出一个提示:我这边选择update...
2019-03-22 14:41:22
12755
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
20633
8
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android微信/QQ红包自动抢(AccessibilityService)
关于抢红包的文章已经很多了,我再来总结下,QQ的顺便也实现下,原理很简单,搜索屏幕中的文字,搜索到了就点击,QQ相对来说要简单一些关键代码:AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();nodeInfo.findAccessibilityNodeInfosByText("恭喜");首先,在辅助功能里面开启服务后,
2017-12-04 09:54:02
10638
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 安卓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
111284
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 收藏的文章
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
783
1
原创 cocos 导入第三方库
下载下来以后在node_modules中即可找到axios.min.js,只拷贝这个文件到项目中script文件夹即可。new Web3().eth.sendTransaction 先看到函数参数,再换成web3即可。由于axios在cocos 中也会出现导入问题,所以直接采用拷贝axios.min.js的方式。由于cocos的限制只通过min.js的方法引入的,所以不可自动联想代码,可以通过。先在package.json 中dependencies 中下载下来。crypto-js使用。
2024-07-15 14:54:10
352
原创 dart 中singleWhere()、firstWhere()、lastWhere() 、 where()的区别
singleWhere()用于查找唯一元素,如果不存在或找到多个元素会抛出异常;firstWhere()和lastWhere()分别用于查找第一个和最后一个符合条件的元素;where()则是用于过滤出符合条件的所有元素。
2023-11-14 14:32:15
395
原创 Flutter有状态组件StatefulWidget生命周期
StatefulWidget是Flutter中的一个有状态的组件,它的生命周期相对复杂一些。其次,生命周期的调用顺序是。
2023-11-13 14:40:18
645
原创 Flutter 手把手国际化
这样就实现了在 语言设置 页面进行语言切换了,但是重启app后语言又还原成中文了,所以采用shared_preferences库保存上一次语言。intl_zh.arb 和 intl_en.arb 是以json结构配置的,所以我们配置如下。这样页面里面的组件就引用到了语言管理类中的字段,但是还差一步初始化。分别代表中文和英文的语言数据,所以只需要修改它俩即可,文件生成完了,接下来就是把中英文插入相应的位置了,语言配置好了,接下来就是怎么引用它们了。这样语言就都配置好了,切换语言只需要调用。
2023-11-03 11:23:03
1112
原创 Flutter(学前必看)基础
Dart 中 var 变量一旦赋值,类型便会确定,则不能再改变其类型// 下面代码在dart中会报错,因为变量t的类型已经确定为String,// 类型一旦确定后则不能再更改其类型。t = 1000;eat();run() {library关键字通常在定义库时,我们可以使用library关键字给库起一个名字。但目前我发现,库的名字并不影响导入,因为import语句用的是字符串URIpart关键字在之前我们使用student.dart作为演练的时候,只是将该文件作为一个库。
2023-10-26 16:39:41
228
原创 Flutter(十)网络请求和文件
注意,onHttpClientCreate会在当前dio实例内部需要创建HttpClient时调用,所以通过此回调配置HttpClient会对整个dio实例生效,如果应用需要多种代理或证书校验策略,可以创建不同的dio实例来分别实现。Android 和 iOS 的应用存储目录不同,PathProvider (opens new window)插件提供了一种平台透明的方式来访问设备文件系统上的常用位置。()来获取应用程序的文档目录,该目录用于存储只有自己可以访问的文件。演示WebSocket通信过程。
2023-08-28 16:35:30
721
原创 Flutter(九)Flutter动画和自定义组件
无论是MaterialPageRoute、CupertinoPageRoute,还是PageRouteBuilder,它们都继承自PageRouteMaterialPageRoute组件,它可以使用和平台风格一致的路由切换动画,如在iOS上会左右滑动切换,而在Android上会上下滑动切换CupertinoPageRoute是Cupertino组件库提供的iOS风格的路由切换组件,它实现的就是左右滑动切换。自定义切换动画优先考虑使用PageRouteBuildercontext,
2023-08-28 11:45:11
1283
原创 Flutter(八)事件处理与通知
一次完整的事件分为三个阶段:手指按下、手指移动、和手指抬起,而更高级别的手势(如点击、双击、拖动等)都是基于这些原始事件的。
2023-08-04 16:55:16
1264
原创 Flutter(六)可滚动组件
Scrollable :用于处理滑动手势,根据滑动偏移构建 Viewport。Viewport:显示的视窗,即列表的可视区域;Sliver:视窗里显示的元素。具体布局过程:Scrollable 监听到滑动后,根据滑动偏移构建 Viewport ,Viewport 将当前视图信息和配置信息通过 SliverConstraints 传递给 Sliver,Sliver 中对子组件按需进行构建和布局。顶部和底部灰色的区域为。
2023-04-10 10:19:13
3367
原创 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
619
原创 Flutter(四)布局类组件
布局类组件就是指直接或间接继承(包含)和的Widget它们一般都会有一个child或children属性用于接收子 Widget。继承关系 Widget > RenderObjectWidget > (Leaf/SingleChild/MultiChild)RenderObjectWidgetRenderObjectWidget类中定义了创建、更新RenderObject的方法,子类必须实现他们RenderObject:渲染UI界面的。
2023-03-09 17:23:55
1203
转载 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
3102
原创 Flutter(三)基础组件
LinearProgressIndicator和CircularProgressIndicator,并没有进度条尺寸的参数,但都是取父容器的尺寸作为绘制的边界,所以可以使用尺寸限制类Widget,如ConstrainedBox、SizedBox 来指定尺寸。
2023-02-28 09:39:49
416
原创 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
950
原创 Flutter(一)介绍、Dart语言简介
纯原生开发主要面临动态化更新和开发成本两个问题,而针对这两个问题,诞生了一些跨平台的动态化框架Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart 语言开发 App,一套代码同时运行在 iOS 和 Android平台Dart 中 var 变量一旦赋值,类型便会确定,则不能再改变其类型// 下面代码在dart中会报错,因为变量t的类型已经确定为String, // 类型一旦确定后则不能再更改其类型。t = 1000;
2023-02-13 16:10:33
4802
2
MVVMDemo.zip
2020-06-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人