- 博客(64)
- 收藏
- 关注

原创 Kotlin自定义dialog
Kotlin自定义dialog由于系统自带的dialog都比较的简单,无法满足产品的需要,而且也不够美观,所以能自定义随心所欲的dialog岂不是美滋滋。步骤如下1.写好自定义的dialog_exit.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schema...
2019-04-10 17:03:13
5147
原创 Flutter插件Plugin.kt文件无法识别flutter库报红
1.问题:最近要使用Flutter插件,但是AS的尿性,插件模块自带的xxxxPlugin.kt打开后就报红,出现无法识别flutter中带的各种类,使用Android模式打开也是如此。2.解决如下:(1)在local.properties文件中添加你的flutter sdk目录:flutter.sdk=F:\\flutter\\flutter(2)在build.gradle文件中添加://最外层def localProperties = new Properties()def localP
2021-10-06 00:48:01
1581
1
原创 Flutter之图片选择器image_picker
前言:image_picker可以camera拍照,也可以从gallery相册中选择。1.导入库:image_picker: ^0.7.42.demo:class MyIndexedStack extends StatefulWidget{ @override State<StatefulWidget> createState() { return _MyIndexedStack(); }}class _MyIndexedStack extends State<
2021-08-02 13:49:16
1316
原创 Flutter瀑布流列表
1.导入库:flutter_staggered_grid_view: ^0.4.02.使用代码:class _MyHomePage extends State<MyHomePage>{ List imgList = [ "http://yanxuan.nosdn.127.net/65091eebc48899298171c2eb6696fe27.jpg", "http://yanxuan.nosdn.127.net/8b30eeb17c831eba08b97bdcb4c46
2021-08-01 18:06:26
488
原创 Flutter屏幕适配之flutter_screenutil
前言.屏幕适配android和ios都有自己的方案,flutter使用flutter_screenutil进行屏幕适配。1.导入依赖:flutter_screenutil: ^3.1.02.初始化: ScreenUtil.init(context, designSize: Size(750, 1334), allowFontScaling: false);这里的750,1334是ui给的设计图宽高px值。3.ScreenUtil类widget:width和height都是dp值 //表示宽度
2021-08-01 02:24:38
1988
1
原创 Flutter中使用Provider
前言.相当于全局变量,只要一改数据,引用到的地方就会自动刷新UI。1.导入:provider: 5.0.02.写model类class User extends ChangeNotifier{ String _name; String _gender; User(this._name, this._gender); set setName(String value) { _name = value; notifyListeners(); } String g
2021-07-31 16:47:26
380
原创 Flutter使用数据库
1.这里使用sqflite,android和ios通用,导入依赖:sqflite: ^2.0.0+32.建立数据库db,并获取db对象。表结构如下://1.0 version 没有author,后面2.0 version更新表结构添加author static const String TABLE_BOOK = 'book'; static const String BOOK_COLUMN_ID = 'id'; static const String BOOK_COLUMN_NAME =
2021-07-29 20:20:14
656
原创 Flutter的动画
1.Animation的状态有四种,使用枚举AnimationStatus 表示enum AnimationStatus { /// The animation is stopped at the beginning. //如果动画是reverse()返向执行,执行结束后就是dismissed dismissed, /// The animation is running from beginning to end. //动画开始正向执行,此时也会调用addStatusListene
2021-07-27 22:40:02
229
1
原创 Flutter 常用依赖库
1.网络请求库:dio: 4.0.02.视频播放库:chewie: ^0.12.2 video_player: ^1.0.03.webview库:flutter_webview_plugin: 0.4.0 webview_flutter: 2.0.104.图片加载库:cached_network_image: 3.1.05.toast弹窗库:fluttertoast: 8.0.76.sp库:shared_preferences: 2.0.67.缓存管理库:flutter_cache_manage
2021-07-26 12:30:47
377
原创 Flutter UI控件笔记
1.CircleAvatar圆形头像:new CircleAvatar( backgroundImage: new NetworkImage("https://pic3.zhimg.com/fc4c1cb34c2901a1a8c05488bbd76fa2_xs.jpg"), radius: 11.0),2.圆形按钮RaisedButton( shape: CircleBorder(side: BorderSide(color: Colors.pink)),
2021-07-26 12:24:18
118
原创 Flutter 云笔记
1.网络,导入Dio库,dio: 4.0.0,注意要用空格,不能碰到边界。2.dio网络请求://根据需要传入对应的参数Dio().get(url, queryParameters: {"type": type, "key": key});3.回调typedef RequestCallBack = void Function(Map data);//请求完成后根据得到的数据执行回调 static Future<Response> getData(RequestCallBack
2021-07-21 11:46:12
174
原创 kotlin中使用AOP
一.前言:AOP(Aspect Orented Programming):面向切面编程,通过ajc编译器把java文件编译为加工过的class文件,个人感觉就是定点插入代码。二.应用场景:权限申请,日志统计,行为统计,性能检测。三.项目配置:这里我放在公共模块中(1)project中添加: classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'(2)主module中 apply plugin: 'co
2021-07-02 07:22:50
1096
原创 Android中引用百度地图sdk
1.在百度那里注册成为开发者,创建对应的应用,填写包名,sha1,最后得到AK。2.下载sdk,解压得到jar包,和各个平台的so库。3.由于我是组件化开发,将jar包和各个平台的so库目录复制到common的libs目录下,右击jar包,add as library。common的build.gradle就多此jar的引用。//这里是common模块,使用api,而不是implementation api files('libs/BaiduLBS_Android.jar')4.在app的And
2021-06-11 16:07:47
471
1
原创 kotlin中组件化开发
参考来源:参考文章1.这里的模块要有:主模块(app),modulea,moduleb,modulec,common。四个子模块均是在Project->app下新建的modele->Android Library2.这里给出各个模块的build.gradle的配置:(1)主模块(Project:项目名)的build.gradle中添加ext{ isDebug = false android = [ compileSdkVersion: 29,
2021-06-02 23:16:38
705
3
原创 SpringBoot 简单使用Mybatis
1.引入依赖(版本可去找最新的): <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency>2.application.properties下添加数
2021-05-27 00:25:38
77
原创 Springboot使用极光推送
参考来源:服务器参考来源1.springboot服务器添加依赖 <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.3.10</version> </dependency> <dependency> <groupId>c
2021-05-20 01:23:49
773
1
原创 Redis学习记录
一:安装启动1.安装:安装地址2.cmd切换到安装目录开启服务端C:\redis>redis-server.exe redis.windows.conf3.开启客户端(由于redis默认不显示中文,所以要加上–raw):C:\redis>redis-cli.exe -h 127.0.0.1 -p 6379 --raw二:常见类型1.string127.0.0.1:6379> set test aabbccOK127.0.0.1:6379> get testaabbc
2021-04-24 00:01:38
105
原创 xutils3和springboot接口参数
1.接口参数(1) 普通参数:public Object getMap(int page,String keyword)如果不写@RequestParam进行映射,表单中的字段与方法中的参数名一致的话,会自动设置,所以最好是使用。Android: var url = "http://ip:8080/getMap" var requestParams = RequestParams(url) requestParams.addParameter("page
2021-04-17 17:37:32
129
原创 JNI混淆
1.debug运行好好的,但是打包得release,各种闪退,这个时候可能就是开启混淆后,没配置好混淆规则了。2.比如eventbus,rxjava等,简单的混淆如下:# Add project specific ProGuard rules here.# You can control the set of applied configuration files using the# proguardFiles setting in build.gradle.## For more detai
2021-04-16 23:44:54
402
原创 scrollview悬停
1.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <androidx.swiperefreshlayou
2021-04-11 23:58:14
209
原创 JNI提取txt文本并显示到recyclerview中
1.这里主要是在jni中获得类中的成员变量容器,然后添加,遍历完毕,执行对应的函数进行显示。2主要jni代码如下:#include <jni.h>#include <string>#include "dirent.h"#include "android/log.h"using namespace std;#define TAG "native"#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR,
2021-03-31 23:51:35
357
原创 Netty简单的群聊
前言,很垃圾的。一:服务端1.springboot导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.projectlombok</g
2021-03-24 23:28:49
202
1
原创 sprootBoot上传和下载文件
1.单文件上传:传到服务器的 F:\uploadSrc目录下 @RequestMapping("/upload") public @ResponseBody String upload(@RequestParam("file") MultipartFile file){ try { if(file.isEmpty()){ return "file is empty"; }
2021-03-23 00:09:57
370
1
原创 SpringBoot 连接mysql
1.构建一个新项目,前面写过了。2.添加依赖,在pom.xml中添加: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</group
2021-03-21 18:40:41
311
原创 window安装mysql
1.根据:安装教程进行下载,解压,新建配置文件,初始化等。注意,注意,注意。cmd务必使用管理员身份打开进行命令行操作。2.过程肯定是有问题的:问题:You must reset your password using ALTER USER statement before executing this statement执行解决:alter user user() identified by “root”;修改密码:set password for ‘root’@‘localhost’=’***
2021-03-21 18:22:44
90
1
原创 SpringBoot 搭建小demo服务器
环境:window10,IDEA社区版1.IDEA社区版没有Spring框架的,要在Settings->Plugins中找到Spring Assistant插件进行安装,然后重启IDEA。2.构建新项目:file- >new->project->Spring Assistant->Default->Project properties项目属性填写->Web->Spring web->Project name->finish即可。3.在项目主包
2021-03-20 19:22:15
126
原创 Kotlin xml pull解析
1.在res下加raw目录,添加local.xml待解析文件 var xmParser = Xml.newPullParser() var input = resources.openRawResource(R.raw.local) xmParser.setInput(input,"UTF-8") var eventType = xmParser.eventType while (eventType!=XmlPullParser.END_
2021-03-15 23:47:49
313
原创 Kotlin 使用EventBus
前述:EventBus就是一个观察者消费模式,常用的点击事件就是这个模式,现在可以使用DataBinding替代。1.导入依赖:implementation 'org.greenrobot:eventbus:3.0.0'2.在create方法中注册 EventBus.getDefault().register(this)3.在destroy方法中注销 EventBus.getDefault().unregister(this),注销会导致内存泄漏的,无法释放this。4.写回调事件,就是被观
2021-03-13 16:44:52
1604
原创 极光广播推送
前述,本来想要验证码的,但是极光短信推送个人是不行的,必须得公司才能签名,注意这里的签名不是指添加应用时的JPUSH_APPKEY,而是消息推送设置里添加的签名。1.根据网上步骤注册极光开发者。2.添加应用,得到JPUSH_APPKEY。3.依赖啥的添加 implementation 'cn.jiguang.sdk:jpush:3.8.5' // 此处以JPush 3.8.5 版本为例。 推送 implementation 'cn.jiguang.sdk:jmessage:2.9.2'
2021-03-13 02:45:23
410
原创 Kotlin中GreenDao的使用
1.依赖添加:apply plugin: 'org.greenrobot.greendao'在android{***}中添加:greendao { schemaVersion 1 daoPackage 'com.example.architectrue' //包名 targetGenDir 'src/main/java' //存放greendao库生成文件(DaoMaster和DaoSession)的目录 }在添加classpath 'org.greenrobot:greendao-gradle-pl
2021-03-13 02:24:00
2139
原创 MMKV使用
前述:mmkv是腾讯开源的持久化第三方库,可以用来替代以往的SP,性能大大的好,使用方法如下。1.添加依赖:implementation 'com.tencent:mmkv-static:1.1.2'这里使用static可以减少库的大小。2.在application中初始化mmkv,可以新建一个applicationclass MyApplication : Application() { override fun onCreate() { super.onCreate()
2021-03-08 10:48:24
2582
原创 Android-MVC-MVP-MVVM
首先,概念先来一波一.MVC:Model,View,Controller交互模型:View->Controller->Model->View 单向环形。通常view和Controller是同一个,比如activity或者fragment。View 接受用户交互请求,View 将请求转交给Controller,Controller 操作Model进行数据更新,数据更新之后,Model通知View更新数据变化。二.MVP:Model,View,Presenter主
2021-03-02 00:55:23
107
原创 Android ml记录
oom,内存溢出,分配的内存不够用了导致出错,硬干饭撑死。ml,内存泄漏,被占用的内存无法得到释放,导致可用内存越来越小,最后可能导致oom,占着茅坑不拉屎。四大引用。1:强引用,来时无法回收,全局变量时可赋值为null,jvm合适时会回收,局部变量,引用内容保存在栈中,退出方法栈时,引用内容的引用不存在,回收object2:软引用,只有内存不足时才回收。3:弱引用,无论内存够不够,都回收。4:虚引用,任何时刻都可能被回收,回收时给个通知。注意:回收的是对象,能不能回收看引用类型,引用类型相当
2021-02-24 18:46:54
280
原创 Android 中使用ffmpeg,个人学习记录
前言:要使用ffmpeg就是用它的各种库,这里用动态so库,使用centos7编译。1.租一台云服务器,部署centos72.wget xxxxffmpeg安装包地址 //这里我使用3.3的3.tar -xzf xxx安装包 //解压4.mkdir ndkbuild 并进入此目录 /5.wget 下载ndk包 //这里选择14b的6.unzip 安装包7.cd 退到根目录后:vim vim ~/.bashrc 进入后改为:export NDKROOT=/root/ndkbuild
2021-02-03 01:31:52
390
1
原创 Kotlin 中简单使用AIDL
一.实现的功能:app222客户端通过binder调用app111服务端的实现接口二.步骤目录图:1.建立工程app1112.添加User.aidl,ABBean.aidl,TestBean.aidl这里需要特别注意,业务aidl名字你随便取无所谓,比如这里的User.aidl,但是ABBean.aidl和TestBean.aidl必须和自定义的数据类型名一致,一个自定类型一个aidl文件,而且自定义类型数据必须实现序列化,这里又要注意反正我使用@Parcelize是无效的,最后还是老老实实的去
2021-01-12 15:02:59
1088
原创 Service与Activity通过Binnder通讯
1.自定义TestService 继承Service,内部类MyBinder继承Binder,内部接口OnBinderListenerclass TestService : Service() { override fun onBind(intent: Intent?): IBinder? { return MyBinder() } //接Activity转过来的Intent,然后做服务逻辑 override fun onStartCommand(i
2021-01-09 18:23:26
132
2
原创 Kotlin 背景圆头像图
1.需求:大部分的头像选择更换时都采取这样的功能,半透明的蒙版,中间一个正方形的选取框,底图随意移动缩放,确定后截取为背景头像。网易云,微信都是如此2.实现:1:代码:package sssimport android.content.Contextimport android.graphics.*import android.util.AttributeSetimport android.util.Logimport android.view.MotionEventimport and
2021-01-02 02:52:36
491
原创 Kotlin 实现仪表盘VIew
1.定义VelocityViewpackage sssimport android.animation.ValueAnimatorimport android.content.Contextimport android.graphics.*import android.util.AttributeSetimport android.view.Viewimport com.example.sosrcpro.Rclass VelocityView :View{ private va
2020-12-26 04:24:17
466
2
原创 JNI 文件遍历
1.引入#include "dirent.h"2.相关结构体(1)DIRstruct DIR { struct dirent ent; struct _WDIR *wdirp; }; typedef struct DIR DIR;(2)dirent struct dirent { long d_ino; /* Always zero */ unsigned short d_reclen; /* Struct
2020-12-24 02:23:26
377
原创 JNI添加md5加密
1.md5.h#include <string>#include <iostream>// a small class for calculating MD5 hashes of strings or byte arrays// it is not meant to be fast or secure//// usage: 1) feed it blocks of uchars with update()// 2) finalize()// 3)
2020-12-24 01:55:46
560
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人