自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Java注解处理器---------编译时注解

常见的几个API:Name simpleName = element.getSimpleName();//注解的元素名称//如果元素在{}内,则返回类名称。如果这是顶级类型,则返回其包。如果这是一个包,null则返回。如果这是一个类型参数, 则返回参数类型。element.getEnclosingElement();ClassName className = ClassName.ge...

2019-03-25 16:15:06 383

原创 Android组件化开发初探

组件化项目需求的不断变更,项目越来越大,代码越来越臃肿,耦合度越来越高,导致开发效率下降。为了解决这一问题,最开始模块化,划分为多个模块进行开发,由于项目过大,每次打包编译特别慢,测试不方便,然后对每个模块进行拆分,实现组件化。这样做的一个好处,各个业务组件可以单独拿出来测试,减少了每次打包时的编译耗费时间,开发人员可以单独负责自己的业务组件。组件各个模块配置android studio...

2019-02-14 17:01:53 209

原创 Flutter显示用户友好界面,而非异常报红

Flutter全局错误页面处理class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { ErrorWidget.builder = (FlutterErrorDetails errorDetails) { return getErrorWidget(cont...

2019-12-11 09:41:27 731

原创 flutter与原生如何进行交互

flutter与原生如何进行交互Flutter 主动调用原生flutter端代码Android端IOS端原生如何主动调用FlutterAndroid端IOS端Flutter处理原生调用Flutter 主动调用原生当flutter主动调用原生时,flutter与原生之间必须建立一个通道,然后通过此通道进行通信。flutter端代码/* 通道名称,必须与原生注册的一致*/ static c...

2019-09-27 15:05:15 3060 3

原创 Flutter学习:用户交互

flutter用户交互,首先了解一下StatelessWidget(无状态)和StatefulWidget(有状态)这两个类,在与用户交互时,我们选择有状态的,需要继承StatefulWidget,具体步骤如下:class TestStatefulWidget extends StatefulWidget{ @override State<StatefulWidget> cr...

2019-01-23 17:31:22 222

原创 Flutter学习:ListView

ListView的使用

2019-01-11 14:40:12 357

原创 Flutter学习:用Flutter打造一个简单登录界面

搭建如下图所示的登录界面看到结构图,可以使用一个列布局即可完成,对于输入框,使用TextField控件,对于输入控件样式,通过Container控件来装饰。看代码://登录界面class LoginView extends StatelessWidget { @override Widget build(BuildContext context) { // TODO: i...

2019-01-07 15:52:18 4084 1

原创 Flutter学习:基础组件(二)

1.Row行:在水平方向显示子控件,但是不能滚动。(注意:行的子控件一般包裹在 Expanded或Flexible小部件中,不然,行溢出时,在行末尾有黄黑色警告条纹。如下图)关于Row的构造器: Row({ Key key, MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start, MainAx...

2019-01-04 13:53:32 361

原创 Flutter学习:基础组件(一)

1.Text用于显示单个样式的文本控件,字符串可以显示一行或者多行,具体取决于布局约束。text的属性值: const Text(this.data, { Key key, this.style, this.textAlign, this.textDirection, this.locale, this.softWrap, this.o...

2019-01-03 10:36:50 358

原创 Flutter学习:创建第一个Flutter工程

在android studio 中创建一个Flutter项目配置flutter环境,在Flutter下载SDK,解压放到任何目录下边(除修改文件需要权限),如果现在cmd中操作,配置path环境变量,如:C:\Users\mm\flutter\bin,在cmd查看:在Android studio中安装Flutter和Dart插件(已安装好Android SDK)。创建一个Flutter项...

2018-12-29 17:30:50 642

原创 线程池 --------常见的四中线程池

由于线程的频繁调度,而影响性能,通过线程池来维护,减少线程的频繁的创建和销毁。在Executors统一管理:1.newFixedThreadPool:创建定长的线程池,超出定长在线程队列中等待。 public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecu...

2018-12-20 11:04:39 457

原创 webview长按点击实现弹出菜单栏

最近有一个需求,当长按点击webview,弹出菜单栏,这是系统默认的有复制,全选,搜索等功能,而不能满足公司需求,同时公司需要将分享和搜索功能去掉,添加自己的菜单:添加自己的功能,自定义webview,复写下边两个方法:@Overridepublic ActionMode startActionMode(ActionMode.Callback callback) { Ac...

2018-12-06 14:28:50 2556 2

原创 LinkedList源码分析

在源码中我们可以看到,LinkedList继承AbstractSequentialList,并且实现了List<E>, Deque<E>反而ArrayList不一样,他继承AbstractList,这就可以看出LinkedList内部以队列的方式来访问数据的。看一下初始化数据: transient int size = 0;//大小 transient N...

2018-11-27 10:22:21 90

原创 ArrayList的源码分析

ArrayList继承AbstractList抽象类,根据源码可以知道,内部是一个对象数组,源码如下: private static final int DEFAULT_CAPACITY = 10;//默认容量为10 /** *三个对象数组是ArraList根据调用的构造器不同,初始化选择 */ private static final Object[] E...

2018-11-20 10:22:34 99

原创 源码分析LiveData根据其生命周期自动处理数据

在官方文档中是这样说的:LiveData是一个可观察的数据持有者类。与常规observable不同的是LiveData可以关联Activity,Fragment,Services的生命周期。保证了当在组件的生命周期的发生变化是LiveData会发生更新。使用LiveData的优点有:1.确保了数据源与UI的一致: LiveData遵循观察者模式。Observer生命周期状态更改时,LiveD...

2018-11-13 15:08:52 1936

原创 Lifecycle源码分析

Lifecycle如何检测生命周期Lifecycle是一个抽象类,它里面定义了三个抽象方法,两个枚举类型,其中三个抽象方法通过注解的形式表示在主线程中,Lifecycle的源码:public abstract class Lifecycle { public Lifecycle() { } @MainThread public abstract void a...

2018-11-09 10:53:32 188

原创 Android 官方架构组件之 Lifecycle的学习

Lifecycle:官方介绍Lifecycle is a class that holds the information about the lifecycle state of a component (like an activity or a fragment) and allows other objects to observe this state.Lifecycle uses ...

2018-11-07 16:03:02 268

原创 微信小程序wx.navigateTo传值

传一堆字符串,可直接传值,当传对象时,遇到的问题<view class="goods-box" wx:for-items="{{source}}" wx:key="{{index}}" bindtap="toDetailsTap" data-item=&

2018-10-11 14:57:15 4724 2

原创 写属于自己的Dialog

在每个App都有自己风格Dialog,如何渲染自己的Dialog,也许有的还在继承Dialog,实现Dialog,如果单独继承Dialog,设置圆角的样式时,要在Androidmanifest.xml文件中进行配置,而Android提供了DialogFragment,可以直接继承这个,实现属于自己的Dialog。实现如下:public class BaseDialog extends Di...

2018-08-23 14:37:35 313

原创 Adapter条目设置布局参数

首先获取像屏幕素点:DisplayMetrics dm = context.getResources().getDisplayMetrics();int widthPixels = dm.widthPixels;对于条目通过布局参数设置ViewGroup.LayoutParams layoutParams = holder.ln_root.getLayoutParams();i...

2018-08-23 13:35:36 333

原创 Android应用内用其他应用打开文档

打开文档 private void openFile(File file) { try { Log.e("文件名", file.getName()); Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);...

2018-08-17 13:54:17 2893 1

原创 MYSQL的安装

MySQL下载http://dev.mysql.com/downloads/mysql/ 安装1.添加环境变量 (解压后的bin文件夹下) 2.修改my-default.ini,此文件是初始化信息:(或者新建my.ini文件)[mysqld] port = 3306 basedir=D:/software/mysql-5.7.21-winx64 datadir=...

2018-08-17 13:47:46 114

原创 MYSQL存储过程

存储过程DELIMITER // CREATE PROCEDURE GetAllProducts() BEGIN SELECT * FROM products; END //DELIMITER ;存储过程的变量:变量的申明:DECLAREDECLARE variable_name datatype(size) DEFAULT defaul...

2018-08-17 13:43:35 128

原创 MYSQL基本操作

 常见操作符order by:对指定的列进行排序。(默认升序,降序DESC)select * from student_table order by name DESC;Top子句用于规定要返回的记录的数目 select * from student_table limit 3;通配符% :  替代一个或多个字符— :...

2018-08-17 13:41:32 90

原创 序列化和反序列 properties

当对象在传输或存储的过程中,无法直接进行此操作,需要序列化。在Java语言中,将对象序列化,存储到文件中,要实现这一过程,其类要实现序列化接口,我们拿学生类为例: public class Student implements Serializable{ private static final long serialVersionUID = 1L;//生成版本序列号 priva...

2016-07-22 16:18:51 318

原创 文件的读写

对于文件的读写有各种形式,如字节流读写,字符流读写,在字符流之上的缓冲流的读写,对于这几种流的读写各有优点,各有不足吧:      首先介绍一下字节输入输出流(FileInputStream\FIieOutputStream)对文件的操作:将文件aa.txt中的内容读取出来放到bb.txt文件中。首先以一个字节的方式读取:File file=new File("aa.txt");

2016-07-17 15:05:01 225

原创 反射机制

对于一个IT人来说,在博客和贴吧里学习无疑是一个最快最有效的路径,虽然之前在很多博客中学习到了很多知识,但自己都没有写过一个帖子,今天写一下我对于反射机制的一些基本操作方法和理解。反射机制:官方解释是对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。对于反射来说,要实现

2016-07-07 14:23:12 228

空空如也

空空如也

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

TA关注的人

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