自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (3)
  • 收藏
  • 关注

原创 组件化开发Aroute原理简析

对组件化开发的基本认识中,各个模块之间的通讯方式明显不能满足项目需求,此时就需要一个通讯框架实现模块之间的通讯。框架的意义就在于实现解耦的前提下,能够让各组件之间完成通讯。所以简单学习了一个Aroute框架权当记录,错误的地方还请指正本demo设置了主程序和登录模块,一些基本的配置,例如library开关,manifest设置等本文就不再描述,直接简述Aroute的流程创建ArouteLibrary依赖库,让主程序和登录模块依赖此项目public class Aroute {// 存放key

2020-11-10 18:11:35 1388

原创 OKHTTP内部流程

最近无聊看了一下OKHTTP源码,大致了解了一下我们使用OKHTTP发送网络请求之后,内部都发生了什么。简单说一下哈我们正常发送一个get请求如下 OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().get().url(url).build(); client.newCall(request).enqueue(new Callback() { @Override pub

2020-11-05 16:56:06 201

原创 我理解的Handler内部流程

线程/Handler/Looper/MessageQueue/Message之间的对应关系一个线程对应一个Looper,一个Looper对应一个MessageQueue一个线程可以对应多个handler,msg.target可以找到对应的handler。主线程的Looper和loop()启动主线程已经调用了Looper.prepareMainLooper(); Looper.loop();方法Looper.prepareMainLooper(); 创建了一个Looper对象,并与当前线程绑定

2020-10-30 12:00:37 164

原创 fori和foreach的区别

直接上代码ArrayList里边的foreach方法,归根结底还是调用了fori;在刚开始id时候expectedModCount = modCount,但是如果进行了增删操作,那么modCount就会发生变化,expectedModCount != modCount就会抛出异常了 @Override public void forEach(Consumer<? super E> action) { Objects.requireNonNull(action);

2020-10-29 16:07:00 3264

原创 我理解的安卓组件化开发

安卓组件化开发的意义当项目比较大需要多人协同开发的时候,组件化开发可以使大家分模块开发,并且不会互相影响。并且可以单独调试,不受其他模块制约。项目结构解析创建一个主应用,两个子应用(既可以做应用,也可以作为主应用的依赖),一个base库实现主应用和子应用的通讯。创建后项目结构如下统一项目编译版本gradle.properties文件设置统一版本 # 统一编译版本等信息 compile_Sdk_Version=28 min_Sdk_Version=15 target_Sdk_Versi

2020-10-28 12:01:19 184

原创 安卓线程池理解

线程池的使用场景在安卓开发中经常会遇到处理多张图片,或者分片上传等需要使用多线程的情况,如果简单的通过new Thread创建线程,会造成线程的频繁创建和销毁,占用大量的资源。并且频繁的调用GC机制,这会使性能降低,又非常耗时。常见的线程池分类最基本的ThreadPoolExecutor1 通过构造方法,创建最基本的线程池,这也是参数最多,允许用户自己设置ThreadPoolExecutor threadPoolExecutor=new ThreadPoolExecutor( 2,

2020-10-19 09:37:01 158

原创 Message: ‘chromedriver’ executable needs to be in PATH.

出现这个报错信息,原因是版本号不对应解决办法:安装与浏览器版本匹配的webdriver1、打开谷歌浏览器, 在地址栏输入chrome://version/查看版本信息:2、从http://npm.taobao.org/mirrors/chromedriver/下载版本3、将chromedriver.exe放到指定路径...

2021-10-19 14:18:35 500

原创 全国各地市乡镇数据

如题,java操作Excel,读取数据,写数据。参考博客地址:https://blog.csdn.net/cpcpcp123/article/details/82763937public class Excel { public static void main(String[] args) { try { //获取指定行的值 readSpecifyRows(new File("F:\\ry2.xls")); }

2021-04-15 11:43:30 414

原创 20201124java基础知识整理

JDK JRE JVM关系JDK是java开发工具包,包含java开发工具(编译工具javac.exe,运行工具java.ext)和JREJRE是java运行环境,包含JVM和java所需核心类库。只需要JRE就可以运行开发好的java程序JVM是java虚拟机,是虚构出来的计算机,是通过仿真各种实际计算机实现的。java的跨平台就是建立在jvm的基础上,任何平台只要装有针对该平台的虚拟机,就可以执行编译好的字节码文件。这就是“一次编译,多次运行”。java运行原理通过javac编译我们编

2020-11-20 18:37:09 276

原创 微信小程序常用功能所需条件整理

商户号开通:如果用户有商户号,请提供api、mchId和安全证书告知用户,如果商户号超过3个月没有流水记录,会被微信限制支付我们重新申请商户号时间约7个工作日(没申请过商户号,具体资料未知)微信商户号申诉时,有效期填写公司成立日期,不要写营业执照右下角日期(切记)小程序申请:名称需要微信认证后才能使用(用户可提供多个名字,看微信审核情况)修改名字需要300元认证费用(特殊词汇需要软著或其他证明文件,时间根据具体情况)需要营业执照、法人身份证正反面照片、公司对公账户和开户行信息(需要往微

2020-11-10 16:45:53 1205

原创 Android Studio通过无线的方式连接手机调试

查看当前连接的设备打开Android Studio的terminal工具,输入: adb devices指定端口输入命令adb tcpip + 端口号(端口号是随意指定的,只要不会冲突没有被占用。一般我们使用5555)连接手机输入命令adb connect+手机IP:端口号,显示connect to输出即为连接成功。即可直接操作了...

2020-11-06 14:06:59 557

原创 微信小程序 添加社交类目

微信小程序添加社交类目,需要上传《非经营性互联网信息服务备案核准》即icp备案文件可以通过https://beian.miit.gov.cn/#/search/info查询

2020-10-10 18:10:44 1635

原创 微信小程序button样式设置不好的时候,去掉app.json中的v2

微信小程序button样式设置不好的时候,去掉app.json中的v2

2020-09-24 10:40:25 568

原创 安卓 全屏模式下键盘遮挡底部输入框

废话不多说,直接上图显示bug,底部的输入框光标以下部分被遮挡了。查了很多资料,有说必须使用RelativeLayout的等等说法。一行行代码注释后发现是因为全屏的问题。找到问题就好解决了,贴出大神代码,侵删public class AndroidBug5497Workaround { // For more information, see https://code.google.com/p/android/issues/detail?id=5497 // To use t

2020-06-04 09:45:17 331

原创 NestedScrollView默认不在最上方

android.support.v4.widget.NestedScrollView嵌套RecyclerView时,会遇到不显示最顶端内容,需要给NestedScrollView的子控件设置属性android:descendantFocusability="blocksDescendants"

2020-05-26 16:11:49 988

原创 Spring整合Mybatis

Spring可以存放我们的对象,Mybatis方便了我们与数据库交互。整合之后方便我们的开发Spring整合Mybatis步骤项目目录图导入依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc&l.

2020-05-15 17:06:46 225

原创 我的Spring入门(二) 代理模式

我对代理模式的理解工作中,公司祖传代码已经完成了所需功能,但是现在要求对所有的请求加日志。为了改动原有代码,避免出现不可预知的意外,就可以使用代理模式,也就是传说中的套娃娃。代理的实现方式首先来看基本需求//service接口public interface UserService { void add(String name); void delete(); void update(); void query();}//实现类public class Us

2020-05-15 16:18:34 118

原创 我的Spring入门

这里写目录标题我对Spring的理解依赖注入DIxml注入自动注入我对Spring的理解我理解的Spring相当于一个大容器,存储用户需要的对象。两个核心思想IOC和AOPIOC意思是控制反转,我的理解是在容器中放了各种各样的对象,这种思想的好处就是用户需要哪个对象,直接拿过来就能组装上。传统的思想是对容器中的对象按照需求进行更改,然后再组装。IOC的思想极大的方便了程序员的开发,只关注业务层,找到自己需要的组件就可以了。不需要根据用户需求频繁的修改组件AOP就是切片编程,可以在程序中加塞,做某种

2020-05-13 18:41:48 153

原创 我的Mybatis入门(四)整合Spring

为什么要整合Spring我的想法:Spring可以帮我们管理对象,方便我们开发整合步骤创建项目,引入jar包创建过程略,引入jar包如下图所示:基本配置创建User.class类public class User { private int id; private String name; private int age; //省略get set toS...

2020-04-26 11:37:24 122

原创 我的Mybatis入门(三)一对一和一对多查询

一对一查询(一个订单对应一个用户)修改Order.classOrder.class添加用户信息public class Order { private int id; private int userId; private int orderNo; private String address; private User user; @Override public St...

2020-04-24 18:23:27 183

原创 我的mybatis入门(二)

Mybatis中包装类的使用个人理解的包装类可以封装多个bean对象,在UserMapper.xml文件中统一写为parameterType=“QueryVo”,方便管理(菜鸟个人理解,欢迎大神指正、轻喷)Mybatis的if标签和where标签if标签对传递的字段进行条件判断(比如说传递的字段是否为null等)where标签在多条件判断的时候,以前都在where后边先写一个1=1,...

2020-04-24 11:15:02 114

原创 我的mybatis入门

#我对mybatis的理解##mybatis是干什么的?Mybatis是一个框架,对jdbc的数据库操作过程进行封装,开发者不必处理注册驱动、创建Connection等操作,只关注sql即可##mybatis工作原理通过xml将要执行的statement配置起来,通过java对象(UserMapper.java)和statement(UserMapper.xml)中的sql进行映射生成最终...

2020-04-23 10:37:00 147

原创 微信小程序scrollview不能横向滚动问题

.recommend { height: 158px; white-space: nowrap;}.recomitem { margin-left: 30rpx; display: inline-block;}recommend为scroll-view,recomitem为item的布局

2020-04-15 11:40:21 437

原创 微信小程序通过云函数调用安全api,实现敏感词校验

如题,话不多说,直接上代码1.首先需要在小程序中引入云函数框架1.1在project.config.json中添加设置,同时在小程序根目录新建cloudfunctions文件夹"cloudfunctionRoot": "cloudfunctions/"1.2在app.json中添加设置"cloud":true1.3点击云开发,开通云开发功能1.4填写环境信息...

2020-04-09 17:09:37 2800

原创 The specified child already has a parent. You must call removeView

binding.llGoods.removeAllViews(); for (int i = 0; i < entries.length; i++) { LegendEntry entry = entries[i]; View view = View.inflate(getActivity(), R.layout.item_g...

2019-11-25 16:13:16 125

原创 retrofit2注解笔记

@Multipart 支持文件上传,如果在文件上传的同时需要传递描述信息,如果使用@Filed 后台收到的字段会包括双引号,可以使用@Query,@Filed参数信息包含在请求体,@Query参数信息体现在url...

2019-07-16 16:56:21 189

原创 我理解的内连接和外连接

最近在学习mysql,查询的时候用到了内连接和外连接,记录学习内容,如有错误,请大神指正首先创建表,建立连接1.分类表create table category( cid varchar(32) primary key, cname varchar(100));2.商品表create table product( pid varchar(32) prima...

2019-06-26 15:44:18 281

原创 将Android Studio仿微信一键录制语音项目上传至github,并生成依赖

最近公司需要仿微信录制音频,一阵折腾之后大功告成,但是感觉很是麻烦,以后遇到这种需求还要重新复制代码很是麻烦。看到网上好多大神把自己的项目做成依赖包传到github,我等小白依赖之后就可以直接调用很是羡慕,学习笔记如下1.在project的build.gradle中添加buildscript { repositories { google() ...

2019-06-14 18:16:56 502

原创 pycharm上传代码到github

1.下载Git并安装,在pycharm中指定路径2.pycharm中登录github账号3.vcs将代码上传到github4.add5.更新和上传

2019-05-31 17:18:59 419

原创 pycharm里边导包失败问题

使用pycharm+scrapy写爬虫,原本打算在一个文件夹里边放几个爬虫1、爬虫2等好几个项目,遇到导包的时候一直报错。目录结构如下如果用itcastspider.itcastspider.items可以找到items文件,但是运行报错,提示没有itcastspider这个module。如果导包的时候删除第一个itcastspider可以运行,但是后边的ItcastspiderItem爆...

2019-05-30 16:06:27 1051

原创 安装scrapy出现error: Microsoft Visual C++ 14.0 is required

爬虫小白安装scrapy遇到error: Microsoft Visual C++ 14.0 is required.搜索Microsoft Visual C++ 14.0 发现是一个编辑器,感觉通过下载另一个编辑器来解决scrapy问题并不现实。后来发现是twisted问题,因为scrapy用的网络框架是twisted,然后就去https://www.lfd.uci.edu/~gohlk...

2019-05-29 16:14:37 138

原创 一个超好用的侧拉删除框架

感谢大神,赐给我力量implementation 'com.github.mcxtzhang:SwipeDelMenuLayout:V1.3.0'布局文件如下:<com.mcxtzhang.swipemenulib.SwipeMenuLayout xmlns:android="http://schemas.android.com/apk/res/an...

2019-05-24 14:18:02 693

原创 pycharm无法安装第三方库

今天用pycharm安装bs4的时候一直报错,retry几次之后报ssl出错,然后所有的第三方库都无法安装,但是当时一直在听歌就没意识到可能是网络问题。尝试了很多方法,1.升级pip工具2.下载beautifulsoup后使用Python命令安装等方法都不能解决问题。后来出现了浏览器不能上网,但是其他比如网易云音乐都能正常联网的情况,解决之后发现所有的第三方库都能正常使用了。操作方法为在int...

2019-05-23 18:17:49 1187

原创 Android studio中xml文件编写时,控件属性不提示问题

最近开发中突然遇到再写布局文件的时候,Android studio不提示控件的属性,很是不方便。好多网友说是省电模式、或者缓存之类的问题,都没有解决问题。最后到用户文件夹下,删除了.AndroidStudio3.2(不同版本文件夹不一样)问题解决了,只不过需要重新设置Androidstudio的一些背景、文字大小、插件。但确实还是能解决问题的,开发中遇到的小问题,权当记录。...

2019-05-07 10:38:30 3799

原创 Android studio中R文件报红,但是能编译运行问题解决

最近经常遇到R文件报红,不论是sync、clean、rebuild都不能解决问题。虽然能编译运行,但是看着一片报红心里还是很不爽。上网查了资料后发现,Android studio版本跟gradle版本不一致会导致报红。我目前用的是3.2版本,但是gradle用的是3.3.1版本,修改为3.2.1之后,报红问题解决。小问题权当记录dependencies { classpa...

2019-05-07 10:29:45 1385

原创 databinding使用过程中 Invalid byte 3 of 3-byte UTF-8 sequence.

databinding使用过程中设置text内容拼接字符串时遇到: Invalid byte 3 of 3-byte UTF-8 sequence.解决方法一:使用 `` 拼接字符串解决方法二:在gradle.properties中添加-Dfile.encoding=UTF-8最早使用第一种,但是遇到多次拼接仍会报错,使用第二种之后,目前未遇到报错...

2019-04-16 15:22:31 650

转载 滑动折线图

网上找到自定义viewpackage com.beijingyiling.ninglingpolice.widget;import android.content.Context;import android.content.res.Resources;import android.content.res.TypedArray;import android.graphics.Bit...

2019-02-15 15:35:54 307

转载 屏幕适配笔记

由于安卓是开源的,所以产生了各种各样的机型,屏幕适配问题随之而来。1.首先了解几个重要概念1.1屏幕尺寸/屏幕分辨率/屏幕像素密度屏幕尺寸:屏幕对角线长度,单位是英寸,1英寸=2.54厘米屏幕分辨率:屏幕纵横线上的像素点数,单位是px,1px=一个像素点屏幕像素密度:屏幕每英寸上的像素点数1.2dp/dpi/px/sppx:屏幕分辨率的基本单位,一般美工作图以px为单位...

2019-02-15 15:23:40 140

转载 box-sizing

box-sizing属性可以为三个值之一:content-box(default),border-box,padding-box。content-box,border和padding不计算入width之内padding-box,padding计算入width内border-box,border和padding计算入width之内,其实就是怪异模式了~...

2019-01-18 17:05:12 146 1

原创 微信小程序弹窗封装

初识小程序,好多功能都感觉新鲜。由于多个页面都需要弹窗,想着能不能跟安卓一样封装一个方法,所有都页面都能调用。记录如下:封装模块dialog.js// component/dialog/dialog.jsComponent({ /** * 组件的属性列表 */ properties: { content: { type: String, ...

2019-01-15 15:35:45 1220

caozuoexcel.rar

caozuoexcel.rar

2021-04-15

Aroute原理demo

Aroute原理demo

2020-11-10

ModulesDemo.rar

安卓组件化demo

2020-10-28

空空如也

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

TA关注的人

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