自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卓原的进化之旅

活到老,学到老

  • 博客(119)
  • 资源 (4)
  • 论坛 (1)
  • 收藏
  • 关注

原创 flutter 1.22版本@required被替换成了required

解决方法:将pubspec.yaml中的environment改为以下内容:environment: sdk: ">=2.10.1 <3.0.0"并重启ide即可。原因这个是最近空安全的修改。现在,required是dart 2.10中的关键字。如果flutter版本升级到1.22,dart版本会随之升级上来,所以正常运行没有错误,但是编译器会报错。...

2020-11-04 11:19:08 152

原创 Flutter 代码混淆 混淆Dart代码

代码混淆Flutter的代码混淆flutter的代码混淆就是混淆dart代码。代码混淆是修改应用程序二进制文件的过程,以使人们更难以理解。混淆将函数名和类名隐藏在已编译的Dart代码中,从而使攻击者很难对您的专有应用程序进行反向工程。Flutter代码混淆的做法Flutter版本小于1.16Android将以下行添加到<ProjectRoot> /android/gradle.properties:extra-gen-snapshot-options=--obfuscate有

2020-10-23 15:39:02 302

原创 flutter 分享到whatsapp

android无需额外配置ios:<key>LSApplicationQueriesSchemes</key><array> <string>whatsapp</string></array>flutter :需要 url_launcher_launchWhatsapp() async {const url = "https://wa.me/?text=Your Message here";var encod

2020-09-29 22:26:30 98

原创 FractionallySizedBox 按比例设置Widget的尺寸

FractionallySizedBox 按比例设置Widget的尺寸有时候,应用的设计是按比例给出的,例如这样 : 按钮应该占应用宽度的70%这时可以使用FractionallySizedBox来实现.构造方法const FractionallySizedBox({ Key key, this.alignment = Alignment.center, this.widthFactor, this.heightFactor, Widget child,}) 我们先看一下

2020-08-22 15:53:52 169

原创 Flutter国际化 多语言 使用Flutter intl插件实现多语言

准备工作搜索插件 : Flutter Intl项目配置添加依赖:dev_dependencies:... //add this flutter_localizations: sdk: flutter在菜单栏的Tool下找到Flutter Intl 并选择Initalize for the project, 配置结束后效果如下:会在 pubspec.yaml中增加以下字段flutter_intl: enabled: true会在lib目录下增加 g

2020-08-20 00:24:35 1048

原创 Flutte接入firebase messaging(FCM)

flutter接入firebase messaging其实文档说的还算比较详细,但有些东西没有更新,照着文档无法正常集成。pub地址使用添加依赖 # firebase firebase_messaging: ^6.0.16Android配置在firebase后台添加应用使用Firebase控制台将Android应用添加到您的项目中:跟随助手,下载生成的google-services.json文件,并将其放置在android / app中。dependencies {

2020-08-14 14:23:41 1054 2

原创 flutter textField设定高度后,文字无法居中

今天遇到了一个关于TextField的问题:如果给textField设定的布局高度小于它的默认高度,那么它的居中就会有问题.修改后的效果:代码:Container( color: Colors.black12, constraints: BoxConstraints(maxHeight: 30), child: TextField( textAlignVertical: TextAl

2020-08-08 00:59:02 1078

原创 Android View的绘制过程复习

Android View的绘制过程DecorView是一个应用窗口的根容器,它本质上是一个FrameLayout.DecorView有唯一一个子View,是一个垂直的LinearLayout,包含两个子元素:TitleView(ActionBar的容器) 和 ContentView(窗口内容的容器).ContentView是一个FrameLayout(android.R.id.content),我们平时用的setContentView就是设置它的子View.上图还表达了每个Activity都与一个

2020-06-26 11:56:18 228

原创 JVM复习总结

JVM运行时数据区域根据《Java 虚拟机规范(Java SE 7 版)》规定,Java 虚拟机所管理的内存如下图所示。程序计数器内存空间小,线程私有.字节码解释器工作时就是通过改变程序计数器的值来选取下一条需要执行指令的字节码指令(主要是取下一条指令的字节码文件).分支,循环,跳转,异常处理,线程恢复等基础功能都依赖程序计数器来完成.如果线程正在执行一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址 ;如果正在执行的是Native方法, 这个计数器记录的值为(U

2020-06-25 17:33:40 170

原创 初级排序算法
原力计划

初级排序算法首先介绍两个概念:内部排序:排序工作能在内存中完成外部排序:数据量太大,不能在内存中完成而需要在磁盘上完成的排序选择排序找到数组中最小的元素将它和数组的第一个元素交换位置(如果第一个就是最小的,那么它就和自己交换)在剩下的元素中找到最小的元素,将它与数组第二个元素交换位置重复以上步骤,直到整个数组排序完成.特点:运行时间与输入无关数据移动是最少的时间复杂度:O(n2)空间复杂度:O(1) /** * 选择排序 *

2020-06-23 15:02:27 181 2

原创 二分查找法

二分查找法二分法就是一种在有序数组中查找某一特定元素的搜索算法搜索过程从数组的中间元素开始:如果中间元素正好是要查找的元素,则搜索过程结束如果某一特定元素大于或小于中间元素,则在数组大于或小于中间元素的那一半查找,而且和开始一样从中间元素开始比较如果在某一步骤数组为空,则代表元素找不到.复杂度算法步骤给定一个数组A,目标值为T,查找T在A中的位置令L为0,R为n-1.如果L>R,则搜索以失败告终令m(中间值元素)为"(L+R)/2".如果Am<T,令L为m+1,

2020-06-22 23:20:16 227

原创 算法的时间复杂度
原力计划

时间复杂度我们将算法执行运算的操作数丢弃掉低阶项,再去掉所有的系数.在它前面加上一个O,就是大O表示法.int n = 100;int a = 10;System.out.println(a);//总共执行3次没有更低阶的项了,系数是3, 去掉系数3, 所以时间复杂度是 O(1) int n = 100; int a = 10; for (int i = 0; i < n; i++) { //n次 System

2020-06-22 22:21:40 200

原创 Flutter key
原力计划

Flutter Key当widget在widget tree中移动时,key可以保留它的状态.key可用于保留用户的滚动位置,或在修改集合时保持状态.什么时候需要Key如果你还没有用过key,说明你可能还不需要使用key.事实也正是如此,大多数时候,我们不需要使用key.但是如果你发现自己需要添加,删除或重新排序处于某种状态的相同类型的widget的集合的时候,可能就是需要用到key的时候了.我们先用一个官方的例子来看一下key的作用 , 交换两个只有颜色不同的widgetclass Ke

2020-06-22 17:41:24 201

原创 入门 Android Lint
原力计划

Lint​ Android Lint 是Android Studio 在ADT(Android Developer Tools)16提供的代码扫描工具,可以帮助我们发现和更正代码结构质量的问题。系统会报告该工具检测到的每个问题并提供问题的描述消息和严重级别,以便快速确定需要优先进行的修改。此外,我们还可以通过降低问题的严重级别以忽略与项目无关的问题,或者提高严重级别以突出特定问题。优点无需实际执行应用不必编写测试用例Lint工作流下图显示了 lint 工具如何处理应用源文件。App

2020-06-18 22:29:39 337

原创 Flutter 复习总结

WidgetWidget是不可变的.Widget 是 描述 Element的配置 , 告诉 Element 这个实例如何去渲染。Widget 和 Element 之间是一对多的关系 .每当Widget插入到树中,就会生成一个对应的Element.Widget 可能被复用到树的多个部分,对应产生多个 Element 对象。RenderObject RenderObject是渲染树中的对象,所以它才是实际的渲染对象RenderObject 涉及到布局、计算

2020-06-18 11:27:37 173

原创 通关Android Lint
原力计划

施工中Lint​ Android Lint 是Android Studio 在ADT(Android Developer Tools)16提供的代码扫描工具,可以帮助我们发现和更正代码结构质量的问题。系统会报告该工具检测到的每个问题并提供问题的描述消息和严重级别,以便快速确定需要优先进行的修改。此外,我们还可以通过降低问题的严重级别以忽略与项目无关的问题,或者提高严重级别以突出特定问题。优点无需实际执行应用不必编写测试用例Lint工作流下图显示了 lint 工具如何处理应用源文件。[外

2020-06-10 13:08:56 285

原创 typora + smss / github / 又拍云 / 七牛云 图床

配置文件如下:{ "picBed": { "current": "smms", "uploader": "smms", "smms": { "token": "你的token" }, "transformer": "path" }, "picgoPlugins": { "picgo-plugin-smms-user": true }}查看smss token设置完成后点击验证图片上传即可。...

2020-06-10 12:17:35 192

原创 Android BottomSheetDialogFragment 可随手势滑动关闭的底部弹窗
原力计划

在APP开发中,经常会有一个需求:从底部弹出弹窗,并且可以跟随手指滑动关闭弹窗.简介BottomSheetDialogFragment是位于com.google.android.material包下的一个类.BottomSheetDialogFragment 继承自AppCompatDialogFragmentAppCompatDialogFragment继承自DialogFragme...

2020-03-31 17:55:51 1283 2

原创 集成FlutterBoost

在Flutter发布了1.12版本之后 , 在原生程序中集成flutter的方式也有了改变 , 于是重新走一遍流程.本次操作基于以下版本:Flutter 1.12.13+hotfix.5 • channel stableAndroid Studio 3.5.2Android集成Flutter的意义有时一次全部在Flutter中重写整个应用程序是不切实际的。在这种情况下,Flutter...

2020-01-03 14:29:58 1624

原创 Android LifeCycle监控生命周期

LifeCycle的作用是感知组件(Activity/Fragment)的生命周期 , 并在合适的生命周期执行分配的任务.1.监听组件生命后期假设我们此时有一个Util类,其中有两个方法需要分别在Activity的onStart和onDestory的时候执行,我们可以先让它实现LifecycleObserver:class LifecycleUtil : LifecycleObserver ...

2019-12-27 15:35:09 950 1

原创 Android 监听键盘状态 获取键盘高度

Android暂时还没有提供一个合适的API来获取/监听键盘的状态和高度 , 而我们又经常会有这个需求.最近我的一个项目中,在ugc页面需要在键盘顶部,紧贴着键盘显示一个文字提示,当键盘消失时就隐藏.因此,我需要监听软键盘的打开/关闭 , 以及获取它的高度.ViewTreeObserverA view tree observer is used to register listeners...

2019-12-25 11:25:30 1167 1

原创 Android VideoView 视频播放器 仿抖音

前言最近项目有个需求 , 做个类似抖音的视频效果. 又因为包大小的问题不使用第三方SDK,所以使用原生的VideoView开发了一下, 搭配RecyclerView和PageSnapHelper来实现抖音的效果.全部代码: github看一下实现流程:首先创建了一个继承自ConstraintLayout的View,用来实现自己的布局.东西不多, 里面主要是播放控制的按钮, 和一个可以...

2019-11-27 15:57:40 1609

原创 Java 反射

JAVA反射机制JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得更加多样灵活,调用类中相应方法,是Java增加其灵活性与动态性的一种机制功能1、获得某个对象的属...

2019-11-15 16:23:29 446

原创 Android 弹窗 DialogFragment

前言一直以来 , 做弹窗功能的时候都是使用的Dialog , 布局复杂的弹窗则使用Activity , 把背景设置成透明, 最近了解到一个DialogFragment , 发现使用起来更加方便, 也是谷歌建议的做法.简介DialogFragment 继承自Fragment , 所以它的用法基本跟Fragment一致 , 也包含了一些生命周期和上下文context 和 监听之类的东西. 而且...

2019-10-30 17:52:44 2274 1

翻译 Android 内存优化——常见内存泄露及优化方案

如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄露。在 Android 开发中,一些不好的编程习惯会导致我们的开发的 app 存在内存泄露的情况。下面介绍一些在 Android 开发中常见的内存泄露场景及优化方案。单例导致内存泄露单例模式在 Android 开发中会经...

2019-10-22 15:19:40 580

原创 记一次CSDN的签到抽奖

摘要前一阵子,CSDN上线了签到赢福利,免费抽大奖活动, 可能很多小伙伴都看到了.就是这个东西 , 但我一直没抽过奖, 想起来签到一下而已.正文我上周签到次数好像是3次. 今天想起来这个事 , 就去找了一下抽奖入口.找了半天都没找到 , 联系了一下客服:于是我又进入了签到页面…给大家看一下APP端签到页面的样子:就这么多, 下面没有东西了.只有签到入口, 暂时不知道抽...

2019-10-21 19:31:11 652 1

原创 flutter 支持64位

最近谷歌商店有了一个新的通知:谷歌应用商店的具体要求为:从2019年8月1日开始,除了一直存在的32位版以外,新应用和应用更新都必须提交64位的版本,不过已经上架的Unity 5.6或更早版本引擎制作的游戏除外,他们可以只提供32位版本直到两年后的2021年8月。而截止发文时间,flutter打包出的apk还不支持64位, 于是记录一下自己的过程.1. 向libs添加32位和64位的flut...

2019-06-28 13:53:32 2226 11

原创 Flutter 状态管理之MobX

MobX一直是主要用于JS的主要的状态管理技术。flutter 现在关于状态管理的方案有 Scoped Model,Inherited Widget,Redux for Flutter,甚至是BLoC 。之前写React的时候就有用过mobx,很是喜欢 , 现在发现提供了dart版本,于是来学习一下. 也许会成为最好用的状态管理工具呢介绍MobX只是一个状态管理库,可以很容易地将应用程序的被...

2019-05-17 12:24:21 4107 5

原创 Android混入Flutter以及Android与Flutter通信

从零开始首先,创建一个新的项目文件夹用来存放Android项目和flutter的项目.原生的Android项目我给它命名为AndroidWithFlutterProject.然后创建一个flutter 的 module项目,我命名为flutter_with_android1 :看提示也知道,这个Module就是为了混合进原生的.创建好之后,我们的项目文件夹就变成了这个样子:二者在同...

2019-03-27 13:17:22 1282

原创 Dart 数据类型

Dart的所有东西都是对象。它们都继承自Object,默认是都是null。Dart中支持以下数据类型:Number 数值型String 字符串Boolean 布尔型List 数组Map 键值对Runes ([String]的符文(整数Unicode代码点))数值型 numDart中提供了两种数值类型, 分别是整型int和浮点型double.void main() { ...

2019-03-15 19:32:49 2322

原创 flutter 持久化存储-----数据库sqflite

Flutter中持久化存储数据有多种方案, 一般常用的有 shared_preferences 和 sqfiteshared_preferences: 包含NSUserDefaults(在iOS上)和SharedPreferences(在Android上),为简单数据提供持久存储。数据以异步方式持久保存到磁盘。sqflite: 是一款轻量级的关系型数据库,类似SQLite. 支持iOS...

2019-03-13 16:28:54 8987 9

原创 flutter 修改后台地址并自动打包脚本

脚本内容:@echo off setlocal enabledelayedexpansion set file=D:\Project\sale_aggregator_app\lib\common\constants.dartset "file=%file:"=%" for %%i in ("%file%") do set file=%%~fi echo. set replaced=t...

2019-03-04 12:04:07 1224

原创 颜色透明度 16进制对应表

一、颜色透明度和十六进制对应的表格:透明度16进制100%099%398%597%796%0A95%0D94%0F93%1292%1491%1790%1A89%1C88%1E87%2186%2485%2684%2983%2B82%2...

2019-01-17 16:30:09 2659

原创 flutter 分享插件 : flutter_share_me

已经开始用flutter做项目了 , 最近项目里有个需求 , 分享应用和商品(没错,电商类app) 到facebook,twitter,以及whatsapp.在pub上找了一圈,有俩插件有分享功能, 但不符合要求,于是自己花点时间写了一个.目前只支持Android(我并没有Mac).非常欢迎大家提交pull request和反馈. 一起完善代码!支持分享到facebook , twitter...

2018-12-13 15:29:33 5977 6

转载 Android apk打包命名规则

摘要:前言在日常的开发过程中,许多刚入行的开发者在apk打包命名、应用迭代版本的档案留存管理上都比较混乱——产生这些问题的原因无外乎以下两种:一是之前没有相关的操作经验、头尾不能兼顾;一是公司没有制定对应的规范、无有效参照范例。当然,所谓的规范在业内不会存在唯一的标准与格式(对于规范的理解,本人认为是相对容易让大众接受、理解、掌握的行为准则),所以,本文的目的在于探讨、交流、引导,还望各位不吝赐教...

2018-11-12 14:21:56 2059

翻译 React Native集成Touch ID和Face ID

前言:使用Touch ID也称为指纹身份验证在移动应用程序中非常流行。Touch ID功能可保护应用程序并使其成为用户的无缝身份验证流程。许多银行应用程序,如美国银行,发现,大通,使用Touch ID身份验证,实现安全和无缝的身份验证。用户无需在每次登录时键入长密码,只需允许他们使用Touch ID登录即可。使用iPhone X,我们可以使用Face ID身份验证。Touch ID和Fac...

2018-11-12 14:20:23 3070

原创 flutter自定义View(CustomPainter) 之 canvas的方法总结

画布canvas画布是一个矩形区域,我们可以控制其每一像素来绘制我们想要的内容canvas 拥有多种绘制点、线、路径、矩形、圆形、以及添加图像的方法,结合这些方法我们可以绘制出千变万化的画面。虽然,画布可以画这些东西,但是决定这些图形颜色、粗细表现的还是画笔。画笔PaintPaint非常好理解,就是我们用来画图形的工具,我们可以设置画笔的颜色、粗细、是否抗锯齿、笔触形状以及作画风格。通...

2018-11-08 13:28:47 17595

原创 flutter 打包apk

前言完成项目时,我们需要将项目打包成一个apk,方便测试以及发布版本.并且发布版本还需要签名,今天把这一系列操作记录下来.App签名创建 keystore如果您有现有keystore,请跳至下一步。如果没有,请通过在运行以下命令来创建一个:keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validit...

2018-11-07 17:11:38 8662 9

原创 CSDN1024勋章获得方法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2018-10-24 22:07:09 3165 8

原创 Flutter中的自定义View的基本流程和相关知识

前言我们都知道官方有很多的Widget供我们使用,但它提供的再多,也无法满足产品和UI的需求,当然,谷歌官方也肯定想到了这一点,所以在flutter中,也是支持自定义View的。在Flutter中与绘制相关的是在Painting层次,具体见下图:这张Flutter架构图我相信大家肯定在不同的文章中见过很多次了。和Flutter自带的Wdiget一样,自定义的Widget也会经过Skia...

2018-10-18 15:15:11 3054

java学生信息管理系统源代码

java学生信息管理系统源代码&_4

2014-04-02

java课程设计

1、 自定义类说明: (1)类名:MainTest 作用:主类,构建主界面 继承的父类:Jframe 主要实现接口:ActionListener 主要成员变量: private JPanel ContentPane; private JButton Insert = new JButton(); private JButton Select = new JButton(); private JButton Update = new JButton(); 内部类:MainTest_actionPerformed,主页面的事件监听。 jenter_ actionPerformed,按钮的事件监听。 主要成员方法: public MainTest() public static void main(String[] args) (2)类名:Insert 作用:实现添加个人信息 继承的父类:Jframe 主要实现接口:ActionListener 主要成员变量: private JPanel ContentPane; private JLabel jlab1 = new JLabel(); private JLabel jlab2 = new JLabel(); private JLabel jlab3 = new JLabel(); private JLabel jlab4 = new JLabel(); private JLabel jlab5 = new JLabel(); private JLabel jlab6= new JLabel(); private JLabel jlab7 = new JLabel(); private JLabel jlab8 = new JLabel(); private JTextField jtextfield1 = new JTextField(); private JTextField jtextfield2 = new JTextField(); private JTextField jtextfield3 = new JTextField(); private JTextField jtextfield4 = new JTextField(); private JTextField jtextfield5 = new JTextField(); private JComboBox jcombobox1 = new JComboBox(); private JComboBox jcombobox2 = new JComboBox(); private JTextArea jtextarea = new JTextArea(); private JButton sure = new JButton(); 内部类:sure_actionperformed,按钮的事件监听,实现对数据的插入。 主要成员方法:public Insert(); (3)类名:Update 作用:对个人信息进行修改。 继承的父类:Jframe 主要实现接口:ActionListener 主要成员变量: private JPanel ContentPane; private JLabel jlab1 = new JLabel(); private JLabel jlab2 = new JLabel(); private JLabel jlab3 = new JLabel(); private JLabel jlab4 = new JLabel(); private JLabel jlab5 = new JLabel(); private JTextField jtextfield1 = new JTextField(); private JTextField jtextfield2 = new JTextField(); private JTextField jtextfield3 = new JTextField(); private JTextField jtextfield4 = new JTextField(); private JButton sure = new JButton(); private JButton upda = new JButton(); 主要成员方法: public Update() public void actionPerformed(ActionEvent e) (4)类名:Select 作用:查询学生个人信息 继承的父类:Jframe 主要实现接口:ActionListener 主要成员变量: private JTextArea taInfo=new JTextArea(); private JPanel panel=new JPanel(); private JTextField jtextfield1=new JTextField(); private JButton jbutton=new JButton("查询"); private JLabel jlabel=new JLabel("学号"); 主要成员方法: public Select() public void actionPerformed(ActionEvent e)

2014-04-02

java_ee_api中英文对照版

java_ee_api中英文对照版 JavaTM Platform Enterprise Edition, v 5.0 API Specifications

2015-09-05

java五子棋小游戏

内含 程序原代码 jar包(可双击直接进入游戏) word功能描述文档

2015-08-29

__卓原的留言板

发表于 2020-01-02 最后回复 2020-04-26

空空如也

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

TA关注的人 TA的粉丝

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