自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 android studio运行项目报错PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExce

android studio 解决问题PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

2023-08-15 15:11:17 1910

原创 js UTC、GMT时间问题记录

UTC时间格式:2020-01-13T16:00:00.000Z,T表示分隔符,Z表示的是UTC。(相差北京时间8小时)对应的北京时间:2020-01-14 00:00:00。如果想实现国际化,数据库可以采用存放时间戳的方式,因为没有时区的影响,都是从1970年01月01日00时00分00秒计算的时间。时间格式:YYYY-MM-DDThh:mmZ,其中T表示时间的开始,Z表示时区。GMT时间格式:2023-04-13T12:00+08:00。在JS中使用new Date(),会自动转换成当前时区。

2023-04-20 17:36:37 604

原创 Windows11、win11、Windows10、win10系统安装

UEFI不支持NFTS文件系统的启动U盘。使用系统自带的dism命令工具将原镜像文件中的install.wim拆分为多个小的文件,并拷贝到启动U盘里面的source下。命令中的第一个@改为win10镜像虚拟光驱的盘符,第二个@改为U盘盘符。用管理员打开CMD命令提示符。

2023-01-29 11:56:10 2920

原创 Android-Firebase快速解决合规问题第4篇,解决FirebaseAnalytics库违规获取应用列表问题

未经许可读取个人信息 | 获取应用列表。解决FirebaseAnalytics库违规获取应用列表问题。Firebase实在太恶心了,在国内强烈不建议使用!!!firebase生态库相互唤起,出问题了很难定位。

2022-09-13 16:57:49 1927

原创 Android-Firebase快速解决合规问题第3篇,解决FirebaseCrashlytics库违规网络请求、获取AndroidId问题

原因:FirebaseCrashlytics没有提供的对应的provider,FirebaseCrashlytics的初始化是依赖核心FirebaseApp初始化的时候去加载FirebaseCrashlytics,所以我们只能从问题1:可以知道在app启动的时候就会发生网络流量请求,是在FirebaseCrashlytics库中发生。问题2:从栈顶可以知道,最终是触发了getString方法获取android id,但是找不到从哪里调起来的,那就根据上一篇文章学到的方法,运行debug模式尝试定位问题。

2022-07-03 20:00:06 4022

原创 Android-Firebase快速解决合规问题第2篇,解决FirebasePerformance库获取软件安装列表的行为

安全合规检测,说App未经用户同意,存在获取软件安装列表信息的行为。原因是firebase_performance库中,在初始化的时候会去获取软件安装列表,判断当前是否是主进程。第一篇文章已经介绍了解决方案,这里主要介绍如何定位问题、再去看如何解决问题。解决方案支持原生、flutter库,RN库。先把解决方案放在最上面,不想看详细的过程就直接复制粘贴使用吧。在AndroidManifest.xml中接入以下代码,重点在tools:node=“remove”,将这个provider移除掉。开发环境de

2022-06-27 00:52:52 2963 6

原创 Android-Firebase快速解决合规问题第1篇,汇总篇,无脑复制解决问题

本篇文章只快速介绍解决方案,详细分析看其他文章。通过配置延迟Firebase初始化,Android延时和ReactNative也是同理。2020年7月工信部发布了《关于开展纵深推进APP侵害用户权益专项整治行动的通知》工信部信管函〔2020〕164号文。重点对专项行动中“APP、SDK违规处理用户个人信息”“设置障碍、频繁骚扰用户”“欺骗误导用户”“应用分发平台责任落实不到位”四方面10类问题进行集中排查。2022年开始国内各大应用商店加大对APP合规的检查,像华为商店审核不通过就不让上架,其他商店在合规

2022-06-25 19:50:06 3035 1

原创 Android ContentProvider初始化流程简化分析

Android ContentProvider初始化流程简化分析→ ContentProvider#attachInfo() → ContentProvider#onCreate() → Application#onCreate()Android Code Search android官方在线阅读源码神器此处分析android-12.0.0_r32源码frameworks/base/core/java/android/app/ActivityThread.javamai...

2022-06-10 00:41:28 1101

原创 android使用ContentProvider初始化sdk,初始化时机

最近因为国内上架应用,检测出firebase有违规收集android id行为,明明在代码中延迟初始化了,但firebase依然有操作数据的行为,跟踪发现firebase采用了ContentProvider来初始化sdk,怪不得通过代码延时初始化并没有效果,简单整理一下ContentProvider的初始化原理。作为android四大组件之一,主要作用是封装底层具体实现,对内或对外提供数据。底层数据源可以是数据库、文件,或者网络,只需要ContentProvider提供的操作就能快速实现增、删、改、查。通常

2022-06-09 15:25:40 2477 6

原创 关于flutter-geolocator库使用问题,解决android使用LocationManager定位问题

文章目录相关知识问题现象分析问题解决问题修改源码使用方式有需要直接定位到最下面。相关知识geolocator flutter一个比较好用的定位库android原生提供的LocationManager,常用的定位库谷歌定位服务Google Location Service,需要引入google服务已经具备定位权限,并用户同意授权。<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

2021-11-26 11:49:52 8791 25

原创 Dart单线程模型和Flutter异常捕获

文章目录Dart单线程模型加入队列Future.delayed总结下关于 Future 这些有趣的结论:验证Question1Question2总结异常捕获Dart单线程模型官方文档event-loop翻译Flutter之Timer原理解析-异步原理先看经典的官方图跟javascript类似,通过消息循环来执行任务。有两个队列,一个是微任务队列microtask queue,另一个是事件队列event queue。基本流程就是,在执行完main()后,消息循环机制便启动了。微任务队列的优

2021-11-25 10:12:52 2294

原创 Flutter-Dart入门,常用细节

入门中文官方文档英文官方文档,比较全变量数据类型dart1.12加入空安全。在dart中的一切皆是对象,包括数字、布尔值、函数等,它们和Java一样都继承于Object,所以它们的默认值也就是null。在dart主要有: 布尔类型bool、数字类型num(数字类型又分为int,double,并且两者父类都是num)、字符串类型String、集合类型(List, Set, Map)。结构:【类型】【变量名】= 【赋值】/// 变量void variable(){ bool isBoo

2021-10-27 19:33:11 2621

原创 Android voice语音功能常见问题汇总,注意细节

文章目录前言监听有线耳机、蓝牙耳机(音响)插入打开扬声器前言监听耳机操作audioManager.setMode问题监听有线耳机、蓝牙耳机(音响)插入由于有线耳机、蓝牙耳机是两种传输形式,Android提供了两个广播监听。监听有线耳机//监听耳机IntentFilter headsetIntentFilter = new IntentFilter();headsetIntentFilter.addAction(AudioManager.ACTION_HEADSET_PLUG);h

2021-10-22 17:30:34 1433

原创 Android/Flutter WebView加载H5区分拍照和选择图片

这里写自定义目录标题前言结论问题分析H5端Android-WebView端参考测试html文件前言在使用flutter_inappwebview时,H5中需要进行交互拍照、选择图片。但in_appwebview中实现的方式目前无法区分拍照还是选择图片。现在分析原因,看解决办法。结论先上结论H5中使用以下方式调用,一定要加上capture,表明希望通过捕获的方式获取照片,也就是拍照。<input type="file" accept="image/*" capture>And

2021-10-21 16:29:39 5184 1

原创 webview_flutter官方插件选择文件、图片的问题

前言webview_flutter官方的webview插件,很多功能缺失,现在H5有上传图片的需求,但官方的插件并不支持。点击H5中的选择文件,没有任何响应,问题issues,官方库的issues上已经有提出相关问题。原因分析H5要想调用原生选择图片功能,需要webview重写WebChromeClient类中的onShowFileChooser方法。解决方案使用其他完善的webview替代flutter_inappwebview 这个库目前最完善flutter_webview_plug

2021-09-30 16:50:40 3312 3

原创 2021Google I/O开发者大会汇总

文章目录Smart canvas智能画布LaMDA语言模型-对话式人工智能Google LensGoogle MapWear OSAndroid12来自 Google I/O 的 16 项更新将使您的生活更轻松Smart canvas智能画布转变 Google Workspace 中的协作方式谷歌工作区Google WorkspaceGoogle Workspace 宣布使用 Smart Canvas 实现协作的下一次发展。一个具有实时协同办公功能的智能画布。整合表格、文档,todo事项等,

2021-06-22 20:45:43 650

原创 google play重签名问题修复,导致第三方登录失败问题

文章目录Google play重签名问题统一签名参考Google play重签名问题第一次上架google play应用,如果选择了google play提供的签名方式,会在你的应用上架到google play时候用它的签名帮应用重新签名,会造成从google play下载的应用包签名和其他平台下载的应用包签名不同。由于微信登录等第三方登录功能,需要上传唯一的包签名,也就是只有一个包可以使用微信登录。如果不把google play的重签名改成自有的签名文件,在google play下载的应用就无法使用

2021-05-14 17:18:12 3524 8

原创 Mac环境jenkins多渠道配置打包Flutter、Android应用

这里写目录标题Jenkins安装启动二级目录三级目录Jenkins安装两种安装方式:各平台官网安装Jenkins步骤mac官网安装jenkins步骤使用命令行安装稳定版brew install jenkins-lts下载pkg安装包官方下载安装包地址,官方不推荐使用这种方式使用brew安装会自动安装openjdk,也可以使用自己环境的jdk启动启动、停止、重启命令brew services start jenkinsbrew services stop jenkins

2021-03-24 20:10:13 1348

原创 Flutter各种虚线实战和虚线边框原理

文章目录简介Flutter-Dotted-Border基本使用DottedBorder虚线边框封装核心代码分析思考_DashPainter封装边框的类绘制虚线的核心库path_drawingdash_path.dart绘制虚线核心类CustomPaint的size属性研究有size或child没有size和child总结简介Flutter中如何使用虚线使用的是第三方库Flutter-Dotted-Border其中的封装了基本的图形样式,矩形、圆角矩形、圆形、椭圆形,以及自定义虚线框。内部其实是使用

2021-01-21 11:13:01 13439

原创 flutter框架结构图

文章目录架构图框架Framwork引擎Engine嵌入层Embedder参考架构图Flutter的架构主要分成三层:Framework,Engine和Embedder。框架Framwork这一层纯dart实现,使用了两种设计风格Material Design和Cupertino(针对iOS)风格。Widgets层:一套基础组件库。Rendering层:ui布局渲染。Animation、Painting、Gestures、Foundation是dart:ui库提供的对接底层动画,手势识别等功

2020-12-10 16:19:50 1261 2

原创 Flutter-Android闪屏页(启动页)实现,以及启动流程分析,看这篇文章就够了

文章目录环境启动页配置环境Flutter 1.22.4Framework • revision 1aafb3a8b9 (4 weeks ago) • 2020-11-13 09:59:28 -0800Engine • revision 2c956a31c0Dart 2.10.4启动页配置向 Android 应用中添加闪屏页和启动页

2020-12-10 15:50:25 1904

原创 Flutter-Android正式包采坑记录

问题描述:Flutter Android-Release包出错错误信息:执行打包命令flutter build apk --release错误提示Execution failed for task ':app:lintVitalRelease'. > Could not resolve all artifacts for configuration ':app:debugRuntimeClasspath'

2020-11-14 16:57:44 1214

原创 Flutter高仿支付宝打钩动画

文章目录简介效果预备知识自定义控件基本知识动画基本知识动画分析PathMetric类作用关键代码简介Flutter高仿支付宝打钩动画,利用动画和路径Path实现简易效果。熟悉Android的同学会发现有挺多共同点。Github代码链接效果预备知识自定义控件基本知识主要涉及几个类CustomPaint、CustomPainter、Paint、Path。CustomPaint、CustomPainter需要配合使用,CustomPaint可以理解为作画,CustomPainter字面意思画家,

2020-11-07 10:41:38 1171

原创 Android高仿马蜂窝Tabbar波浪线

Android高仿马蜂窝Tabbar波浪线

2020-10-04 19:39:40 595

原创 Android、ReactNative、Flutter集成Firebase推送注意事项

文章目录简介各开发语言官方文档汇总Android原生React-NativeFlutterFirebase版本查询Firebase中的每个功能包都有很多版本,以下可以查询可用的版本号引入关键Android原生ReactNativeRN0.60以下的版本RN0.60以上版本Flutter消息类型通知消息格式数据消息格式包含可选数据载荷的通知消息处理消息配置接收推送消息配置接收通知和数据类型测试推送消息 接收推送消息的关键 集成问题Flutter中集成出现获取到Token但无法收到推送消息简介涉及Andro

2020-10-03 00:22:05 3481 2

原创 TypeScript装饰器,一篇就够了

文章目录TypeScript装饰器TypeScript装饰器

2019-11-21 21:46:49 15348 1

原创 TypeScript高级应用

typescript的高级应用。本文记录TypeScript一些高级用法,首先要有一定的TypeScript基本知识和了解基础的ES6语法,如果还没学习过TypeScript,推荐2个网站学习后再来看这篇文章。

2019-11-17 19:47:00 888

原创 Android多线程--AsyncTask分析

简介AsyncTask是Android中轻量级的异步类,内部使用两个线程池和Handler完成异步任务,并可以更新UI,其中一个线程池作为线程调度使用,控制多个实例以串行的方式运行,另一个线程池用作执行任务,Handler用来回调主线程。使用方式抽象类public abstract class AsyncTask&amp;amp;amp;amp;amp;amp;lt;Params, Progress, Result&amp;amp;amp;amp;amp;amp;gt;

2018-07-30 20:05:22 289

原创 EventBus(二):Poster

简介事件分发的核心代码:private void postToSubscription(Subscription subscription, Object event, boolean isMainThread) { switch (subscription.subscriberMethod.threadMode) { case POSTING:...

2018-05-10 17:48:20 371

原创 EventBus(一):注册、分发、注销

1 EventBus简介EventBus是一个用于简化Andorid、Fragment、Threads、Service之间信息传递的一个发布/订阅事件集。 使用EventBus的建议:并不建议将应用中所有的事件都通过EventBus进行发送,尤其对于一对一的组件之间通信,建议不要使用EventBus。EventBus的使用场景更像是一种广播,当我们向EventBus发送一个事件,则该事件将会传

2018-05-10 11:18:16 23374

原创 Android之SparseArray源码学习

SparseArraysparseArray的主要作用是将Integers映射到Objects,相当于Map&lt;Integer, Object&gt;。当需要将Integers映射到Objects时,SparseArray比HashMap更高效。因为SparseArray避免自动装箱keys,并且它的数据结构不依赖于外部的Entry。 SparseArray是在一个数组结构中维护它的...

2018-03-30 10:11:40 238

原创 HashMap和HashTable

HashMap数据结构 hashMap内部维护了一个存储数据的Entry数组,HashMap采用链表解决冲突,每一个Entry本质上是一个单向链表。当某条链表的长度大于8时,就会将其转换为红黑树。遍历一条链表的时间复杂度O(n),当一条链表过长时,遍历这条链表可能会花很长时间,而遍历一颗红黑树的时间复杂度为O(logn),从而减少了插入或查找的时间。般情况是通过【hash(key)%le...

2018-03-16 17:52:52 333

原创 JAVA中stringbuffer和stringbuilder的区别

string相关知识做个记录。1)String类是不可变类,一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。 public final class String extends Object implements Serializable, Comparable<String>, CharSequence{ }2)StringBuffer对象则代表

2018-03-14 11:23:46 725

原创 Andoird自定义View贝塞尔曲线入门用法:仿天猫LOGO加载动画

一、前言打开天猫随便搜索一下,就会出现一个天猫LOGO的加载图 模拟效果: gif图的效果不是很好,手机上运行效果比较好。二、实现思路先推荐两篇文章了解一下贝塞尔曲线: http://www.gcssloop.com/customview/Path_Bezier http://blog.csdn.net/harvic880925/article/details/50995587可以让美工

2017-11-03 18:26:55 450

原创 OC中成员变量和属性变量

做一个关于 OC中成员变量和属性变量区别的笔记。 OC中@interface,默认的访问权限是protected。@implementationssh声明成员变量,默认的访问权限是private。@property创建的属性变量默认是public。1.使用方式创建一个Parent的类,总共有5个变量,name、age、hobby、height、weight。Parent.h中 声明如

2017-08-30 17:01:33 2452

原创 IOS Swift Https单向认证

前言上一篇文章记录一下https相关概念,主要是一开始要做https请求的时候被概念弄得头疼,就把一些概念记录了一下,现在记录一下单向验证。什么是单向认证既然有单向认证,就存在双向认证,这一篇介绍了单向认证和双向认证。单向认证也是最常见的,大多数https基于这种方式,大致流程在上篇文章最后也有总结,大概提一下有个映像:

2017-06-12 19:34:18 2140

原创 什么是Https、数字签名、数字证书

一、Http和Https1、HTTP和HTTPS的基本概念   HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。  HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容

2017-06-09 18:57:33 3034

原创 采用Retrofit的PUT方式上传文件到apache

概述前段时间搭建了FastDFS用作文件存储,既然是文件存储,必然需要有文件才能存储。文件可能是由客户端传递上去,可以是视频、也可以是图片等。现在需要提供一个Android端传递视频文件的功能,一说到这,大家肯定想说,okhttp现实一个post表单就搞定了,但是post表单是需要服务端进行接收流,然后采用文件IO方式输出成视频,但这次我打算使用PUT方式上传一个文件。

2017-03-17 19:31:39 3838 1

原创 FastDFS的API使用

调用API来操作上传,下载,删除。本篇记录一下java调用api实现以上操作。编译上一篇就已经下载了fastdfs-client-java-master,解压可以看到目录结构,有一个pom.xml文件,这是一个maven项目,打开Eclipse,以Maven项目形式导入。 刚导入项目可能会出错,打开pom.xml看一下报错的位置,可能是由于本地

2017-03-14 14:10:08 2471

原创 分布式文件系统 FastDFS 5.09 配置

本篇记录一下fastdfs的最新版本v5.09在centos6.3中的安装与配置。

2017-03-09 19:40:51 579

空空如也

空空如也

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

TA关注的人

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