自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 The following classes could not be instantiated

AndroidStudio更新后,新建xml文件会发现布局无法正常预览,同时会在布局下面提示“The following classes could not be instantiated”等信息,通过查询资料都说要将。xml居然正常预览了,特此记录一下!但仔细看了一下项目主题,都是使用的。,一筹莫展之际点击布局。

2023-01-11 13:41:28 695

原创 Android分享到微信报“资源未找到,无法分享状态”

path="Android/data/xxxx(包名)/files/Pictures" />Intent.createChooser(intent, null)`来创建intent。-- 对应SD卡 -->1、在AndroidMainfest.xm中定义一个provider。分享使用intent时直接使用intent,不要再调用`2、分享时使用FileProvider获取uri。file_paths.xml文件。

2022-10-27 12:29:48 6015

原创 Android部分手机界面跳转出现android.os.TransactionTooLargeException: data parcel size 1069576 bytes

android.os.TransactionTooLargeException: data parcel size 1069576 bytes

2022-10-11 13:38:57 981

原创 proto使用说明

proto使用说明一、语法指定proto语法版本在proto文件第一行添加:syntax= "proto3"目前proto有两个版本proto2和proto3,两者语法有一定的差异,在选择的时候注意一下定义message(1)定义: 一个message相当于java中的实体类,里面定义了不同数据类型的数据,并且在结尾处标上标签序号(2)嵌套:一个message内部也可以定义message类型的数据(3)字段格式:修饰符 参数类型 参数名称=字段编码值 [字段默认值] (这里是p

2022-03-20 13:32:48 7948

原创 Grpc使用

Grpc使用1、简介gRPC是由Google主导开发的RPC(Remote Procedure Call:远程过程调用协议)框架,使用HTTP/2协议并用ProtoBuf作为序列化工具。为客户端提供Objective-C、Java接口,服务器侧则有Java、Golang、C++等接口,从而为移动端(iOS/Android)到服务器端通讯提供了一种解决方案。protobuf 序列化解决方案 (消息的数据结构确定后,将数据或对象转换成二进制进行传输)2、Android集成app的gradle文件中添

2022-03-20 13:31:21 2623

原创 mybatis-plus使用

Mybatis-plus开发快速入门1、创建数据库、数据表CREATE DATABASE mybatis_plus;DROP TABLE IF EXISTS user;CREATE TABLE user( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VAR

2021-11-21 20:11:52 1081

原创 vue开发

Vue是一款优秀的渐进式Javascript框架,从2013年诞生以来,受到越来越多的前端程序员的喜爱。Vue的特点1、架构式,方便移植2、声明式UIVue的开始1、第一个Hello World实例<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, i

2021-11-14 23:18:26 715

原创 Android混淆介绍

Android混淆Proguard一、简介Android打包APP后为了增加反编译后阅读代码的难度,增加一些混淆操作,也就是将源代码中类名、方法名、属性名用其他的字符串(比如a、b、c)等,同时代码经过混淆压缩之后体积会明显的减小,达到优化APP的作用。二、Proguard的作用压缩 Shrinking:默认开启,移除未使用的类和成员,并在优化Optimization 之后还会再次执行,移除无用的类,减少APP中方法数,也可避免造成64K的问题。优化 Optimization:默认开启,字节码层

2021-11-09 15:03:27 2703

原创 ffplay的使用

ffplay播放音/视频格式ffplay [options] [input_url]播放视频前 执行下面这句 否则没声音set SDL_AUDIODRIVER=directsoundOptions所有的数字选项,如果没有另外指定,接受一个表示一个数字的字符串作为输入,后面可以跟随一个 SI 单位前缀,例如: “ k”、“ m”或“ g”。如果在 SI 单元前缀后面加上‘ i’,那么完整的前缀将被解释为二进制倍数的单元前缀,二进制倍数是以1024的幂而不是1000的幂为基础的。在 SI 单位前

2021-11-01 13:37:37 2431

原创 ffmpeg的使用

ffmpeg的命令行参数非常多,可以分为5部分$ ffmpeg {1} {2} -i {3} {4} {5}上面命令中,五个部分的参数依次如下。全局参数输入文件参数输入文件输出文件参数输出文件举例$ ffmpeg \-y \#全局参数-c:a libfdk_aac -c:v libx264 \#输入文件参数-i input.mp4 \#输入文件-c:v libvpx-vp9 -c:a libvorbis \输出文件参数output.webm #输出文件上面的命令将 mp

2021-11-01 13:33:31 6420

原创 MySQL常用命令介绍

1、创建数据库CREATE DATABASE test;CREATE DATABASE 'create'; # 用关键字创建数据库要使用单引号''2、删除数据库DROP DATABASE test;3、备份数据库和数据库中表#备份数据库mysqldump -u root -p -B 数据库1 数据库2 > bak.sql #这个命令要在dos命令下执行#备份数据库中表mysqldump -u root -p 数据库1 表1 表2 > bak1.sql #这个命令要在do

2021-10-31 23:24:20 503

原创 logcat日志工具使用

Logcat(Android日志工具)Logcat 是一个命令行工具,用于转储系统消息日志,包括设备抛出错误时的堆栈轨迹,以及从应用使用 Log 类写入的消息。日志记录系统概览Android 日志记录系统是系统进程 logd 维护的一组结构化环形缓冲区。这组可用的缓冲区是固定的,并由系统定义。最相关的缓冲区为:main(用于存储大多数应用日志)、system(用于存储源自 Android 操作系统的消息)和 crash(用于存储崩溃日志)。每个日志条目都包含一个优先级(VERBOSE、DEBUG、IN

2021-10-29 09:12:20 2480

原创 d8工具使用

d8d8 是一种命令行工具,Android Studio 和 Android Gradle 插件使用该工具来将项目的 Java 字节码编译为在 Android 设备上运行的 DEX 字节码,该工具支持您在应用的代码中使用 Java 8 语言功能。d8 在SDK中的位置:android_sdk/build-tools/version/。一般用法d8 简单易用,只需要指向要转换为 DEX 字节码的已编译 Java 字节码的路径即可,如下所示。d8 MyProject/app/build/interme

2021-10-29 09:11:17 2058 1

原创 adb工具使用

ADB(Android调试桥)Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。服务器:用于管理客户端与守

2021-10-29 09:09:37 2858

原创 aapt2资源打包工具

AAPT2AAPT2(Android资源打包工具)是一种构建工具,Android Studio 和 Android Gradle 插件使用它来编译和打包应用的资源。AAPT2 会解析资源、为资源编制索引,并将资源编译为针对 Android 平台进行过优化的二进制格式。可以在 android_sdk/build-tools/version/ 下找到 AAPT2,AAPT2 支持通过启用增量编译实现更快的资源编译。这是通过将资源处理拆分为两个步骤来实现的:编译:将资源文件编译为二进制格式。链接:合并所

2021-10-29 09:08:24 1305

原创 gradlew构建工具和apk签名打包

Gradlew介绍使用命令行构建应用就可以使用gradlew命令来实现。可作为 Windows 的批处理文件 (gradlew.bat) 和 Linux 与 Mac 的 shell 脚本 (gradlew.sh) 使用,可以从使用 Android Studio 创建的每个项目的根目录启动该工具。如需使用封装容器运行任务,请在终端窗口中(在 Android Studio 中,依次选择 View > Tool Windows > Terminal)使用下列命令之一:gradlew task-

2021-10-29 09:06:25 2200

原创 Android插件化原理和开发实战

Android插件化原理和开发实战一、前言用过Android手机的人都知道,安装Android应用时都是安装一个个的apk文件,那么这个apk文件是怎么加载然后运行到手机上的呢?开发Java的人都知道要想把Java文件编译成机器能识别的机器码文件需要依靠Java虚拟机,Android同样如此,不同的是Android并不是直接加载Java文件,而是加载apk安装包中dex文件和资源文件,将它们加载后然后显示到手机上给用户使用。二、类加载机制说到加载,就少不了类加载器,Android中的类加载器示意图

2021-09-07 15:21:43 279

原创 python常用模块使用介绍

Python常用模块基础模块osos.chdir(path)os.chmod(path,mode)os.getcwd()os.listdir(path)os.makedirs(path[, mode])os.mkdir(path[, mode])os.open(file, flags[, mode])os.read(fd, n)os.remove(path)os.removedirs(path)o...

2020-07-06 09:11:38 310

原创 Python使用pyinstaller打包正常程序后运行不正常'Could not find a suitable TLS CA certificate bundle, invalid path:.‘

最近学习python的tkinter模块,并用pyinstaller打包了一个图片压缩程序,源代码可以正常运行,但是打包成功运行后程序就无法执行,会报错"Could not find a suitable TLS CA certificate bundle":查了一下原因,因为压缩图片的库都要用到...

2020-05-11 10:59:54 1994 1

原创 Fragment最新生命周期管理方法

Fragment最新生命周期管理方法Fragment生命周期介绍onCreate()onCreateView()onActivityCreated()onStart()onResume()onPause()onStop()onDestroyView()onDestroy()Fragment生命周期执行流程Fragment最新生命周期方法改进FragmentTransaction使用方法Fragme...

2020-04-26 18:08:14 1237

原创 ScrollView嵌套webview导致部分手机显示不全问题解决

最近在开发Android项目的时候,使用ScrollView嵌套webview在小米手机上出现了页面显示不全,文字错乱,背景成黑色的问题,抓耳挠腮找了半天,布局改了又改,知道将webview的高度由wrap_content改成match_parent,页面才正常显示,但与此同时又出现了新的问题,页面底部留了大片空白,实在是不美观,经过一番寻找,终于给找到一个合适的方法,在此记录一下。步骤很简单,...

2019-07-30 16:41:06 2893 2

原创 Python+selenium控制已打开浏览器

在使用selenium进行自动化测试中我们有时会遇到这样的情况:我们需要手动打开浏览器,进入到所需的页面,执行一些手动任务,如输入表单、输入验证码,登陆成功后,然后再开始运行自动化脚本。这种情况下如何使用selenium来接管先前已打开的浏览器呢?这里给出Google Chrome浏览器的解决方案。我们可以利用Chrome DevTools协议。它允许客户检查和调试Chrome浏览器。打...

2019-07-16 10:48:24 5540 8

原创 Android通过相机拍照后无法获取URI问题解决

Android开发中经常会使用相机拍照和从相册获取图片的功能,实现起来比较简单,打开相册Intent intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_GET_CONTENT);activity.startActivityForResult(intent, GET_IMAGE...

2019-01-23 16:41:25 3457

原创 Node.js模块:koa模块学习探索二

上一篇讲解了koa的入门,但会发现在浏览器中不管输入什么样的URL地址,都会返回相同的响应,这显然不是我们想要的。这篇就来学习关于URL映射的问题。正常情况下,我们应该对不同的URL调用不同的处理函数,这样才能返回不同的结果。例如像这样写:app.use(async (ctx, next) =&gt; { if (ctx.request.path === '/') { ct...

2018-06-12 17:13:53 307

原创 Node.js模块:koa模块学习探索一

本人是做Android开发的,不过一直对后端开发抱有浓厚的兴趣,也曾学习过Javaweb、Python等语言,但由于这些语言工作中使用的不多,经常会忘记,后来由于工作的需要,学习和开发微信小程序,也因此接触了Node.js,马上被它简明的语法、强大的功能所吸引。我也很快学习Node的web模块,主要是原生的http模块,后期封装的express模块,并利用express模块开发出一些接口。不过今天...

2018-06-12 16:57:49 652

Android插件化原理和开发实战

Android插件化原理和开发实战

2021-09-07

空空如也

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

TA关注的人

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