
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
之前的文章介绍了Ability,这里附上自己测试的demo想要创建关系数据库可以参考官方示例,如果你已经有了MainAbility与MyAbilitySlice,那么只需要创建一个DataAbility即可。创建Data AbilityFIle> new > Data Ability,DS(DevEco Studio)会自动创建Data Ability,并且在config.json中注
由四位大师提出的23种设计模式,对于程序的复用性有很大的意义,这里对于Kotlin中自己了解的几种设计模式进行介绍。下面将会介绍:单例模式、访问者模式、工厂模式、抽象工厂模式、构建者模式、观察者模式、策略模式、模板方法模式、迭代器模式、责任链模式、状态模式以及装饰器模式。(注意下面的模式都是基于Kotlin来讲解的)
使用这两个组件可以快速搭建一个普通App的基本骨架,剩下的就是添加内容了。废话不多说,直接上效果。之前,学Andoid使用的组件那么费劲,又是fragment,又是Activity。使用TabLayout,在那使劲搭建,没想到Flutter这么简洁,感觉自己像个蠢蛋。但是,yysy,这个编译好慢。代码如下(全部,懒得重新创建文件放首页的内容了):import 'package:flutter/ma
Scrolling Widget是一种基本组件,介绍一些基本的使用方法。ListView它具有四种构造方法:默认构造函数ListViewListView.builder:适合具有大量列表项的ListView。ListView.separated:可以配置分割线,适用于具有固定数量的列表项的ListView。ListView.custom:提供自定义Widget的能力。默认构造方式MaterialA
为了方便Drawable的使用,这里对Drawable的缩放进行了封装。基本的使用可以选择自己是要使用缩放比例还是使用缩放后的尺寸,这两种方式。废话不多说,Kotlin封装的代码如下:import android.graphics.Bitmapimport android.graphics.Canvasimport android.graphics.Matriximport android.gra
Flutter的路由使用有两种方式,分别是新建路由和注册路由。新建路由代码如下:import 'package:flutter/material.dart';void main() => runApp(MyApp());class MyApp extends StatelessWidget{@overrideWidget build(BuildContext context){return
在安卓的开发过程中,不应该放置过多的任务在主线程上,否则会导致页面加载变慢,用户的体验变差。因此,可以放在线程中执行的事务应该尽量放置在线程中。下面,介绍使用线程,以及线程池的四种常见用法。均采用kotlin实现。线程基本使用//第一种object:Thread(){override fun run() {println("测试")}}.start()//第二种Thread({println("测
多线程的设计,在遇到需要多个执行IO操作的时候,多个线程的阻塞,造成了效率的下降,这个时候异步就是不错的选择了。注意:下面许多操作都是新的库,比旧的版本可能没有。异步协程示例:fun main(args:Array<String>) {//创建异步操作val job = launch(search())println("Hello, ")//等待job执行结束,程序结束job.join
相信大多数人都在Java之中听说过反射,我们经常使用它来完成,我们对于目标类内原本无法访问的东西的操作。这里稍微对比一下Java反射,着重介绍Kotlin中的反射。首先,先要介绍一个概念-----元编程。什么是元编程?描述数据的数据我们称它为元数据。我们将程序看成描述需求的数据,进而得出描述程序的数据为元数据。而操作元数据的编程就可以称之为元编程。用一句话来概括就是:程序即是数据,数据即是程序。前
花了几个小时来配置Linux上的Flutter的运行环境。做个记录,免得下次花时间。首先,要下载Flutter SDK。这个官网网址。下好之后,解压、配置环境变量。所谓配置环境变量就是,在打开终端之后,编辑.bashrc文件,在后面加上如下语句:#flutterexport PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE







