- 博客(85)
- 资源 (3)
- 收藏
- 关注
原创 Android 集成百度人脸采集
这里回调不成 BaiduFaceSDKManager.INSTANCE.getCallback().onCloseSDK(false, null, null);//不为空,带图片回调,在回调地方,调接口上传,后台对BaiduFaceSDKManager.INSTANCE.getCallback().onCloseSDK(true, firstImg, null);// 设置活体动作,通过设置list,LivenessTypeEunm.Eye, LivenessTypeEunm.Mouth,
2024-01-23 09:27:38 1582
原创 Android 捕获native异常
7.1切换到Breakpad-master\tools\mac目录下,运行命令minidump_stackwalk C:\Users\86138\Desktop\apk\crashFiles\d09869f4-cdaf-4f03-85f57d8e-e4fd512b.dmp >carsh.txt。4.4编译,在\build\intermediates\cmake\debug\obj\目录下获取so库。4.2CMakeLists.txt设置和native-lib.cpp代码。*ptr = 12;
2024-01-16 09:04:23 1081
原创 kotlin 单例
这种方式通过 Kotlin 的对象声明在 Holder 类中创建单例,确保了懒加载和线程安全性。这种方式在多线程环境下保证了懒加载的线程安全性,避免了每次获取实例都进行同步。这种方式提供了更多的灵活性,可以在伴生对象中定义一些其他的属性和方法。枚举类在 Kotlin 中可以用来创建单例,关键字会自动创建单例。// 单例的属性和方法。// 单例的属性和方法。委托,确保只有在首次访问。访问单例的属性和方法。属性时才会初始化单例。就是这个单例的实例。
2024-01-05 16:31:48 890
原创 Android 文字垂直排列,文字向右旋转90度
/ 旋转角度,用于将文本垂直排列。//恢复之前保存的画布状态,以确保后续的绘制操作不受旋转的影响。// 用于绘制文本的画笔。//将文本宽度与上内边距和下内边距相加,计算出视图的高度。//保存当前的画布状态,以便后续的操作不会影响到其他绘制。//将文本高度与左内边距和右内边距相加,计算出视图的宽度。// 文本的绘制位置。//使文本垂直排列,旋转了90度。// 获取文本的边界信息。
2024-01-04 18:07:14 796
原创 Android 内容生成pdf文件
"***************公司: 为依法做好用户个人信息保护,切实保障人民群众合法权益,促进通信行业健康发展,维护国家安全和社会稳定,我公司及个人做出郑重承诺: 严格按照《电信和互联网用户个人信息保护规定》(工信部第24号令)、《中华人民共和国网络安全法》等法律法规的要求,以及贵公司相关管理规定,落实好用户个人信息保护工作,杜绝发生非法获取个人信息,以及非法使用、提供、销售个人信息的行为,严禁超范围、超界限使用。//创建iText 7 PDF 的图像对象。//关闭 PDF 文档,完成文档的创建。
2024-01-04 18:05:57 936
原创 Android接入极光推送,接入华为,小米,OPPO,VIVO厂商通道
极光推送作用: 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接,从而提高用户活跃度、提高应用的留存率主要作用: 保持与服务器的长连接,以便消息能够即时推送到达客户端 接收通知与自定义消息,并向开发者 App 传递相关信息SDK 所支持的 Android 系统版本 目前 SDK 只支持 Android 2.3 或以上版本的手机系统; ...
2021-01-29 15:17:30 5695 3
原创 Android 接入阿里实人认证
阿里实人认证作用:通过动作活体的方式采集用户的人脸照片并验证其真实性,并通过与业务已留存的人脸照片进行人脸比对,验证两者是否为同一个人实人认证接入流程前往阿里云官网注册账号。如果已有注册账号,请跳过此步骤。对该账号进行企业实名认证。如果已经是企业账号,请跳过此步骤。打开云盾实人认证产品页面,单击立即开通,开通实人认证服务。在接入之前,可以根据业务上的需求,先了解活体人脸验证方案,选择可以满足业务需求的认证方案。登录阿里云实人认证控制台,在接入及设置页面,创建场景并进行相应的流程配置,具体操作见
2021-01-27 15:56:43 4072 2
原创 android 接入极光一键登入
为什么要接入极光一键登入?理由:用户无需输入手机号码,一键点击即可快速完成注册/登录流程,提高转化率优化用户体验。应用场景注册 登陆 二次验证需要费用?需要开发文档地址https://www.jpush.cn/identify开发步骤:1.配置环境登入极光网站,点击设置选择认证设置在认证设置下,先在集成设置里,填写应用包名和应用签名;然后在一键登入里填入RSA 加密公钥2.按照极光一键登入文档接入地址:http://docs.jiguang.cn/jverification
2021-01-27 13:31:22 4022 3
原创 Android Retrofit源码解析
1.APP应用层须通过Retrofit请求网络,实际上是使用Retrofit接口层封装请求参数,之后由OkHttp完成后续的请求操作在服务端返回数据之后,OkHttp将原始的结果交给Retrofit,Retrofit根据用户的需求对结果进行解析3.首先看下Retrofit.Builder()的private Platform platform这个参数class Platform { ...
2020-03-31 10:58:27 476
原创 Android okhttp源码分析
OkHttpClient mOkHttpClient = new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build();public void synRequest(){ Request request=new Request.Builder().url("http://www.baidu.com").get()...
2020-03-30 10:19:37 380
原创 Android Glide源码解析
1,Glide的使用 todo2.看下Glide.with(this)方法@NonNull public static RequestManager with(@NonNull FragmentActivity activity) { return getRetriever(activity).get(activity); }看下getRetriever(a...
2020-03-27 09:32:34 330 1
原创 Android ButterKnife源码解析
1.ButterKnife是使用APT(AnnotationProcessor注解处理器,Javac的工具)进行注解,//todo不是使用运行时注解,所以性能没有影响,但对编译器有点时间成本的影响2.注解分为普通注解 @Override等元注解 注解其它注解的注解1.@Document 应该被Java记录2.@Target 注解的使用范围3.@Retention 描述注解的生命周期4...
2020-03-25 16:25:04 417
原创 Android Rxjava源码解析
1.Rxjava本质上是一个异步操作库2.看下Observable.create方法 public static <T> Observable<T> create(OnSubscribe<T> f) {//OnSubscribe参数最终会被赋值到 OnSubscribe<T> onSubscribe成员变量 ret...
2020-03-19 15:24:00 270
原创 Android LeakCanary源码解析
LeakCanary原理:watch一个即将要销毁的对象1.在Activity 调用OnDestroy()之后将它放在一个WeakReference2.将这个WeakReference关联到一个ReferenceQueue3.查看ReferenceQueue是否存在Activity的引用4.如果该Activit泄漏了,Dump出heap信息,然后再去分析泄漏路径要了解内存泄漏首先要了解内...
2020-03-17 15:55:11 305
原创 Android EventBus源码解析
EventBus概述和优点1.Android事件发布、订阅框架2.事件传递可用于Android四大组件间通讯3.有是diamante简洁,使用简单,并将事件的发布和订阅充分解耦EventBus的使用//todo流程图1.定义事件event2.准备订阅者3.订阅者同时需要在总线上注册和注销自己4.发送事件看下 EventBus.getDefault()方法 public st...
2020-03-16 10:45:27 252
原创 Android BlockCanary源码解析
BlockCanary是什么非侵入式的性能监控组件BlockCanary的作用UI卡顿问题(ANR 我们才能获取到当堆栈的信息)UI卡顿原理1.60fps---->16m/s帧2.尽量保证每次在16m/s内处理完所有的CPU与GPU计算绘制,渲染等操作,否则就会造成丢帧卡顿问题主线程的作用1.主线程的作用(应用启动后,创建一个主线程,就是ActivityThread)2.把...
2020-03-13 14:44:16 307
原创 Android 集成openinstall
openinstall的作用:第一步:登入openinstall官网,没有账号就注册个第二步:没有应用就添加一个应用(选择高级版)第三步:下载导入sdk(其实就一个jar) 将下载的OpenInstall_v2.3.0.jar放入到libs文件夹下,然后在build.gradle下添加dependencies { implementatio...
2019-12-02 09:46:32 1019
原创 Android 接入融云案例
第一步:去融云开发者后台注册开发者账号,新建一个应用,获取到App Key 和App Secret第二步:导入sdk 2.1 到https://www.rongcloud.cn/downloads/下载sdk,并熟悉各个组件,这里用到IMKit和IMLib 2.2打开android studio ,点击File -> New -&g...
2019-11-11 18:32:32 1155
原创 Android 友盟多渠道打包和统计
一:多渠道打包第一步:登入友盟官网,点击产品,点击移动统计,点击进入新版,点击添加新应用然后提交并获取AppKey第二步:添加maven以来配置,在工程build.gradle配置脚本中buildscript和allprojects段中添加【友盟+】sdk 新maven仓库地址buildscript { repositories { go...
2019-10-31 16:47:50 592 1
原创 Android 接入阿里热修复Sophix框架
一:为什么选阿里热修复二:阿里热修复的原理(Sophix技术概览:https://yq.aliyun.com/articles/103527)三:创建产品及应用(一二三点,都在阿里云官网可以看到)1.1 找到移动研发平台入口在阿里云官网,找到:移动研发平台,点击后,进入到移动研发平台官网详情页面点击后,进入到移动研发平台(Enterprise Mobile A...
2019-10-31 11:43:22 1371
原创 Android集成阿里消息推送
1.阿里消息推送的官方文档地址https://help.aliyun.com/document_detail/30054.html?spm=a2c4g.11174283.3.2.136c6d1669NIv4集成的步骤:第一步:创建app(创建app这个步骤的内容是官方文档里的)移动服务当前创建应用,需要两步(1)添加Android应用 (2)在产品处,点击管理后,右上角...
2019-08-19 13:46:44 1539
原创 Android 集成微信支付
第一步:在微信开放平台,注册开发者账号 地址:https://open.weixin.qq.com第二步:在微信开放平台上,新建自己的应用,等待审核,审核通过会得到appid和appsecret,但是要开通微信支付第三步:后台设置(第三步用的是微信支付官方文档的)商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID。由于需要保证支付安全,需要在开放平台绑...
2019-08-19 10:09:11 6024 1
原创 Android 集成支付宝支付
前面的步骤查看https://blog.csdn.net/sunshine_0707/article/details/85272568第一步:添加jar包到libs文件夹下2.在APP工程的build.gradle中配置jniLibs的目录 sourceSets { main { jniLibs.srcDirs = ['libs'...
2019-08-19 09:32:00 332
原创 Android 百度离线人脸识别小案例
百度人脸识别方式有两种: 第一种:在设备上采集,就是视频里检测到人脸,保存图片,我们根据路径,将图片上传到服务器,在服务器端进行人脸识别。 第二种:就是在设备上采集,同时也在设备上进行识别,不用与服务器端进行交互,这也称为离线人脸识别,我们接下来要说的就是离线人脸识别。步骤:第一步:有账号直接登入百度云,没有接自己注册,地址https://login.bce.baidu...
2019-04-10 15:21:42 7872 10
原创 uni-app 实现微信分享
第一步:在微信开放平台,注册开发者账号 地址:https://open.weixin.qq.com第二步:在微信开放平台上,新建自己的应用,等待审核,审核通过会得到appid和appsecret第三步:将manifest.json中的APP SDK配置里的appid和appsecret用获取到数据填写上。第四步:代码编写methods: { s...
2019-03-20 13:57:36 41848 5
原创 android 接入萤石视频案例
第一步:首先去萤石视频开放平台注册账号,官网地址:https://open.ys7.com/第二步:在萤石开放平台创建自己打的应用,得到AppKey,Secret,和AccessToken第三步:在我的设备里,添加上摄像头信息摄像头:添加上摄像头(设备信息)第四步:集成到案例中(环境要求支持 JDK 7.0 以上版本,支持 Android 手机系统 4.0 以上版本...
2019-03-14 11:43:24 4450 18
原创 Java 备忘录模式
备忘录模式定义: 在不破坏内部封装性的前提下,某个对象的内部状态的拷贝,这样在以后就可以将对象恢复到以前的状态。 备忘录模式的优点: 1.给用户提供了一种可以恢复状态的机制。 2.实现了信息的封装,用户不需要关心内部的状态的保存细节。 备忘录模式的缺点: 1.如果类的成员变多,每个都需要保存一次,消耗内存...
2019-01-24 15:10:44 323
原创 Java 状态模式
状态模式定义: 类的行为是基于它的状态改变的。状态模式的核心: 用于解决系统中复杂对象的状态转换,以及不同状态下行为的封装问题。状态模式的优点: 1.封装了转换规则。 2.可以方便的增加新的状态。 3.避免了在类中写出复杂的if条件语句块。 状态模式的缺点: 1.增加了类的个数。...
2019-01-24 10:56:36 126
原创 Java 模板模式
模板模式的定义: 它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现,这样子类才可以不改变算法结构的前提下重新定义改算法的某些特定步骤。模板模式的核心: 处理的步骤父类中早已定义好,具体的实现延迟到子类中去完成。模板方法的角色: 1.抽象模板角色:它一般是一个抽象类或者接口,它抽象出操作算法骨架。 2.具体抽象模板角色:...
2019-01-23 16:16:50 6149 1
原创 Java 策略模式
策略模式的定义: 策略模式对应于解决某一个问题的一个算法族,允许用户从该算法族中任选一个算法解决某一个问题,同时方便的更换算法或者添加新的算法,并且由客户端决定调用哪一个算法。策略模式的优点: 1.算法可以自由切换 2.避免使用多重判断。 3.扩展性好。策略模式的缺点: 1.策略类会增多 ...
2019-01-23 14:18:13 197
原创 Java 命令模式
命令模式定义: 将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作。所以命令模式也被称为动作action模式或者事物transaction模式。命令模式的优点: 1.降低了行为发送者和行为执行者之间紧耦合的关系。 2.新的命令容易添加到代码里去。命令模式的缺点: ...
2019-01-23 11:20:38 128
原创 Java 中介者模式
中介者模式本质: 解耦各个同事对象之间的交互关系,每个对象都持有中介对象的引用,只跟中介者对象打交道,我们通过中介者对象来统一管理这些交互关系。(同事对象是指在系统中,如果对象之间的联系呈网状结构,对象之间存在大量多对多的关系,我们称之为同事对象)中介者模式优点: 1.降低了类的复杂度,将一对多,转化称为了一对一。 2.符合迪米特法则(一个对象应当对...
2019-01-22 17:27:45 153
原创 Java 迭代器模式
迭代器模式的作用: 提供一种方法顺序访问一个聚合对象中的各个元素,而又无须暴露该对象的内部表示。迭代器模式优点: 1.支持以不同的方式遍历一个聚合对象。 2.在迭代器模式中,增加新的聚合类和迭代器类都很方便。迭代器模式缺点: 1.增加新的聚合类需要对应的增加新的迭代器类,类的个数成对增加,增加系统的复杂性。迭代器模式角色: ...
2019-01-22 14:41:31 107
原创 Java 责任链模式
责任链模式定义: 将能够处理同一类请求的对象连成一条链,所提交的请求沿链传递,链上的对象逐个判断是否有能力处理该请求,如果能,则自己处理,如果不能,则传递给链上的下一个对象。责任链模式常见的使用场景: 1.接力赛跑 2.公司的公文审批 3.大学里,奖学金审批流程等。责任链主要的作用: 责任链上的处理者,负责处理请求,客户...
2019-01-22 10:57:24 184
原创 Java 享元模式
享元模式概念: 运用共享技术,有效的支持大量细粒度的对象的复用.享元模式能够做到共享的关键是区分了内部状态和外部状态: 内部状态:可以共享,不会随环境的变化而变化。 外部状态:不可以共享,会随环境的变化而变化。享元模式的优点: 1.极大的减少了内存中对象的数量。 2.相同或者相似的对象,内存中只有一份,节约资源...
2019-01-21 18:16:37 136 1
原创 Java 外观模式
外观模式的作用: 为子系统提供统一的入口,封装子系统的复杂性,便于客户端的调用。外观模式的角色: 1.外观角色:外观模式的核心,它被客户端调用,熟悉子系统角色的功能,可以根据具体需求,自由组合子系统的功能。 2.子系统角色:外观模式中,可以有一个或多个的子系统角色,每一个子系统可以直接被客户端直接调用,或者被外观角色调用。下面以在家做饭或去楼下...
2019-01-21 16:07:31 149
原创 Java 装饰器模式
装饰模式和其职责: 1.动态的为一个对象增加新的功能。 2.装饰模式是一种用于替代继承的技术,无须通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系。更加灵活,同时避免类型体系的快速膨胀。装饰器模式的优点: 1.扩展对象的功能,比继承灵活。 2.可以对一个对象进行多次修饰,创造出不同的行为组合,得到功能更...
2019-01-21 14:45:19 175
原创 Java 工厂模式
第一种:简单工厂 建立一个工厂,对实现了同一个接口的类,进行实例的创建,同时又因为创建实例的方法是静态的,所以简单工厂又被称为静态工厂。 简单工厂的角色: 抽象产品角色:具体产品要继承的父类或者要实现的接口。 具体产品角色:在工厂类所创建的对象就...
2019-01-17 13:43:09 149
原创 Java 建造者模式
建造者模式本质: 分离了对象的各部分组件的单独构造和组装,从而可以构造出不同的复杂对象。 适用场景: 在某一个对象的构造过程十分复杂的情况下,可以使用。模式特点: 因为分离了对象的各部分组件的单独构造和组装,所以按相同的装配顺序,但是有不同的构造器的情况下,可以创建出不同的对象,还有如果有相同的...
2019-01-16 10:13:41 715
原创 Java 适配器模式
什么是适配器模式: 就是将一个类的接口转换成客户需要的另一个接口,它的职责是将本来不能在一起工作的类,可以一起工作。适配器模式中的角色: 目标接口:客户所期待的接口,目标可以是具体的,或抽象的类,也可以是接口。 需要被适配的类: 需要适配的类或者被适配的类 ...
2019-01-15 17:20:22 159
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人