Android
文章平均质量分 51
FrancisBingo
说得好不如做得好,心动不如行动。
分享自己所遇到的坑,让别人无坑可走。
展开
-
Android 发布依赖库到maven仓库
请注意,要发布到Maven Central(中央仓库),您需要遵循一些额外的步骤。您需要在Sonatype Nexus Repository Manager中注册一个账号,创建一个JIRA issue并提交请求,审核通过后您就可以将自己的库发布到Maven Central了。当您创建一个新的Android库项目时,Gradle构建文件通常会自动生成。,Gradle将把您的库转换为Maven格式,并上传到您配置的Maven仓库中。文件中为您的库添加Maven发布插件,并配置相关参数。原创 2023-04-06 13:04:01 · 397 阅读 · 0 评论 -
Android三方依赖库冲突
三方依赖库冲突原创 2023-02-06 19:43:02 · 1046 阅读 · 1 评论 -
Unity打包Android项目报错
Unity运行android,Unity打包成Android项目报错原创 2022-07-22 22:00:00 · 4768 阅读 · 0 评论 -
Android播放M3U8格式视频失败
android m3u8视频播放失败原创 2022-07-03 19:27:24 · 5320 阅读 · 0 评论 -
linphone基于sipserver实现音视频对讲
一、技术背景因业务需求需要基于sipserver实现音视频对讲,开源代码linephone即可实现。开源库地址:https://github.com/topics/linphone二、基于安卓客户端实现添加build.gradle依赖repositories { maven { // Replace snapshots by releases for releases ! url "http://linphone.org/releases/mav原创 2021-12-21 16:16:04 · 3863 阅读 · 0 评论 -
java双重校验锁单例模式分析
一、问题探究1.volatile关键字的作用?2.第一次判空和第二次判空的作用3.synchronized的位置可以改变吗?二、代码实现public class Singleton { private volatile static Singleton singleton; private Singleton (){} public static Singleton getSingleton() { if (singleton == nu原创 2021-12-12 13:55:15 · 687 阅读 · 0 评论 -
高德地图报错updatePrivacyShow、updatePrivacyAgree若未正确设置有崩溃风险-解决方案
一、报错现象集成高德地图出现崩溃,以前没有问题,报错信息为:updatePrivacyShow、updatePrivacyAgree若未正确设置有崩溃风险二、问题原因由于个人信息保护法的实时,高德地图sdk新增两个方法来保障信息安全。sdk官网也有提示信息三、问题修复无论是在导航sdk、定位sdk、或者其他sdk初始化前调用updatePrivacyShow、updatePrivacyAgree这两个方法设置一下即可解决。例如定位SDK可以调用AMapLocationClient.update原创 2021-11-19 15:26:13 · 7696 阅读 · 0 评论 -
Android违规收集个人信息问题修改
一、何为违规收集个人信息根据国家网信办等四部门联合发布《App违法违规收集使用个人信息行为认定方法》(下称《方法》),为App运营者自查自纠和网民社会监督提供指引,明确9种行为可被认定为“未经用户同意收集使用个人信息”以下几点需要注意,1.在App中没有隐私政策,或者隐私政策中没有收集使用个人信息规则;2.在App首次运行时未通过弹窗等明显方式提示用户阅读隐私政策等收集使用规则;3.隐私政策等收集使用规则难以访问,如进入App主界面后,需多于4次点击等操作才能访问到;4.隐私政策等收集使原创 2021-08-10 10:16:45 · 1840 阅读 · 2 评论 -
Android Camera2自定义相机绿屏
一、问题现象在项目中使用Camera2自定义相机拍照,在其他手机上没有问题、在华为P40上、相机预览出现绿屏,绿屏如下所示二、问题原因预览设置高宽参数不符合相机高宽的话就会有绿条原来的设置代码如下imageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(), ImageFormat.JPEG, 2);三、问题解决调整设置的高度和宽度即可解决问题。width和height为预原创 2021-06-24 11:00:45 · 2442 阅读 · 0 评论 -
Android NFC 读取IC卡的简单封装
一、NFC简介NFC是一种近距离无线通信技术,一种非接触式的识别和互联技术。NFC由非接触式射频识别标准(RFID)及互联互通技术演变而成,通过在芯片上集成了感应式读卡器、感应式卡片和点对点三种功能,能够近距离进行识别和数据交换。NFC支持双向连接和识别,通过NFC技术,可以简化整个认证识别过程,使电子设备间互相访问更直接、更安全和更清楚。NFC Forum 负责制定NFC相关的技术标准,通过NFC认证测试,保证各厂家的NFC产品符合NFC规范。二、工具类封装import andro原创 2021-05-10 16:13:38 · 2346 阅读 · 0 评论 -
华为PUSH推送所有Token都不合法
华为PUSH推送所有Token都不合法问题出现解决方案问题出现今天在集成华为Push的时候,使用平台推送出现了如题错误,所有Token都不合法。push相关的配置信息都已经成功填写正确,并且客户端已经获取到Token,但是在平台上推送这个token的通知消息时报错。经过几次验证。解决方案如下解决方案最终的解决方案就是等待。。。没错。就是等待10分钟后再去发送push消息,即可成功,在这个人判断原因是刚创建好的应用就去发送推送消息,华为的后台可能没有反应过来。所以要让数据飞一会。就可以正常推送了.原创 2021-04-20 21:15:00 · 2674 阅读 · 3 评论 -
Android应用组件命名与已安装应用有冲突
1.问题现象最近在开发Anroid SDK对外提供,主要是不同APP集成我们的SDK,2.问题原因主要是在sdk中有了相同的组件命名导致的冲突,导致无法在同一个手机中安装两个不同APP。3.问题修复1、针对provider进行修改,使用${applicationId}进行替换固定包名<provider android:name="android.support.v4.content.FileProvider" android:authorities="..原创 2021-03-26 15:12:20 · 1962 阅读 · 0 评论 -
LeakCanary2.6版本原理分析-如何检测内存泄漏?
一、介绍LeakCanary是一款开源的内存泄漏检查工具,在项目中,可以使用它来检测Activity是否能够被GC及时回收。帮助我们提高APP的稳定性。官网地址:https://square.github.io/leakcanary/getting_started/二、使用要使用LeakCanary,请将依赖项添加到应用程序的build.gradle文件中:dependencies { // debugImplementation because LeakCanary shou.原创 2021-01-28 21:42:49 · 780 阅读 · 1 评论 -
Android HTTP 设置UA(User-Agent)及自定义
一、什么是UAUser-Agent就是告诉网站服务器,访问者是通过什么工具来请求的,或者自定义信息、例如手机型号、系统版本、app版本、渠道号、便于我们对数据的统计二、客户端如何设置UA1.如果APP的网络请求时okhttp。Request request = new Request.Builder().url(url) .removeHeader("User-Agent")原创 2020-12-18 14:03:11 · 8675 阅读 · 2 评论 -
Android SurfaceView预览相机黑屏问题解决方案
一、问题现象最近有一个自定义相机预览开启和关闭的需求、返现每次预览相机的时候都会出现黑屏1S左右才能渲染出来。二、问题分析主要是surfaceview默认绘制背景就是黑色的,然后通过查找大部分博客文章都是让sv.setZOrderOnTop(true);sv.setZOrderMediaOverlay(true);这两个属性、有可能有效有可能无效,因为对于我这种现象没有解决,所以在此基础上又增加了几行代码、最终解决问题三、解决方案1、使用动态添加的方式添加surfaceV原创 2020-12-09 19:50:47 · 4329 阅读 · 5 评论 -
小米手机相册选取后的intent为空?
一、问题现象在小米手机选择相册图片-裁剪后发现拿不到图片 展示不出来,通过debug发现小米手机上的Intent返回了空@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data);}二、问题解决因此小米手机的相册选择图片需要进行特殊处理 /**原创 2020-11-26 10:36:21 · 900 阅读 · 7 评论 -
Android内存泄漏检测工具--leakcanary
一、LeakCanary简介LeakCanary是一个自动检测内存泄漏的工具由Square公司为Android开发者提供的。LeakCanary本质上是一个基于MAT进行Android应用程序内存泄漏自动化检测的的开源工具,我们可以通过集成LeakCanary提供的jar包到自己的工程中,一旦检测到内存泄漏,LeakCanary就好dump Memory信息,并通过另一个进程分析内存泄漏的信息并展示出来,随时发现和定位内存泄漏问题,而不用每次在开发流程中都抽出专人来进行内存泄漏问题检测,极大地方便了A原创 2020-10-26 15:50:20 · 1406 阅读 · 1 评论 -
Android monkey测试提高稳定性
1. 打开设置其他高级设置开发者选项启用严格模式2. 连接电脑,在命令提示符下执行以下命令:adb shell monkey -p +被测apk的包名 -v -v --throttle 300 --pct-touch 30 --pct-motion 20 --pct-nav 20 --pct-majornav 15 --pct-appswitch 5 --pct-anyevent ...原创 2020-09-22 10:22:55 · 338 阅读 · 0 评论 -
Android集成华为Push及注意事项
一、华为push集成注册账号?集成sdk?扒拉扒拉等等请看官方文档、https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-client-dev-0000001050042041#ZH-CN_TOPIC_0000001050042041__section876955375919二、华为push概览(内容来自华为官网Step1与Step2,开发者的App集成Push SDK,再调用HmsIn原创 2020-08-24 20:50:33 · 811 阅读 · 0 评论 -
Android greendao数据库的使用
一、集成方式1.在app目录下的build.gralde集成apply plugin: 'com.android.application'apply plugin: 'org.greenrobot.greendao'dependencies { //数据库 greenDao implementation "org.greenrobot:greendao:$greendaoVersion" }greendao { schemaVersion 1 //数原创 2020-07-21 17:58:41 · 233 阅读 · 0 评论 -
Android ScrollView嵌套子View时的滑动冲突问题
一、问题描述今天遇到了一个view冲突,一个颜色选择器放在了一个ScrollView下面,导致滑动冲突,二、问题分析这里就需要我们对view的事件分发有一些了解dispatchTouchEvent:负责事件的分发 onInterceptTouchEvent:判断是否拦截某个事件 onTouchEvent:消费点击事件三、问题解决这里涉及到一个方法,例如我们在ACTION_DOWN事件中加上getParent().requestDisallowInterceptTouchEvent.原创 2020-05-26 20:52:30 · 1938 阅读 · 0 评论 -
Android Base64解码失败问题
一、现象描述在开发过程中遇到了base64解码失败问题,ios和Android同时调用上传人脸数据,通过拍照拿到图片信息再装成base64字符串传给后台,此时发现ios上传的图片没有问题,Android端上传的时候后台却报了base64编解码失败,复制了日志信息的base64串去网站验证发现可以转换。二、问题发现经过一番折腾与思考,发现我Base64日志信息特别长,去官网验证时每次都删除调换行符,ding 灵机一动,猜测有可能是换行符原因导致三、问题解决在将base64字符串传给后台之前原创 2020-05-12 17:43:39 · 2854 阅读 · 2 评论 -
Android RecyclerView的item横向屏幕没有铺满
一、现象描述发现自己写的RecyclerView的列表在小米手机上显示异常,每一条的item右侧空白会比左侧的大,我左右距离设置的是相同的,结果设置item横向铺满,再次运行程序后发现在小米手机上没有横向铺满屏幕二、问题解决更改adapter中的代码View.inflate(mContext, mLayoutId, parent)或者View.inflate(mContex...原创 2020-04-22 15:51:36 · 1949 阅读 · 0 评论 -
RecyclerView最后一条显示不全或显示部分的问题解决
一、问题现象RecyclerView最后一条数据展示不全的问题二、前提条件使用ViewPager+Fragment+RefreshLayout+RecyclerView+constrainLayout三、尝试解决方式什么叫尝试解决方式,就是使用了以下方式,各种修改各种没解决。1.recyclerview高度设置为0dp,然后添加app:layout_constraintBo...原创 2020-04-17 12:23:23 · 5202 阅读 · 2 评论 -
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
一、问题报错在使用dialogfragment弹窗时出现java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState错误。 java.lang.IllegalStateException: Can not perform this action after onSaveIns...原创 2020-03-03 16:28:28 · 3914 阅读 · 2 评论 -
Android帧动画第二次调用没反应
问题描述在使用Android 帧动画时,第二次调用就不动了。问题解决一般用法: animationIV.setImageResource(R.drawable.animation1); animationDrawable = (AnimationDrawable) animationIV.getDrawable(); animationDrawable.st...原创 2020-02-03 16:29:35 · 961 阅读 · 0 评论 -
Android的RecycleView 定位显示效果
第一种scrollBy使用:recyclerView.scrollBy(x, y)scrollBy(x, y)这个方法是自己去控制移动的距离,单位是像素,所以在使用scrollBy(x, y)需要自己去计算移动的高度或宽度。第二种scrollToPosition使用:recyclerView.scrollToPosition(position)scrollToPositio...原创 2019-12-23 20:26:48 · 529 阅读 · 0 评论 -
Android 开发中 ArrayList 的 remove 删除无效?
在日常项目开发中常常会使用的ArrayList,用来添加删除数据时,可能会遇到小坑,一、遇见问题遇到的问题如题目,Android 开发中 ArrayList 的 remove 删除无效?有时我们会在for循环中去删除list中的元素,但是结果发现会出现删除失败的问题。二、常用错误删除方式错误写法1public static void remove(ArrayList<...原创 2019-11-13 22:00:44 · 1634 阅读 · 0 评论 -
Android TextView出现双下划线?
一、问题描述在华为机型荣耀V10中Android版本9.0使用普通的方式设置下划线,却出现了双下划线的现象。二、TextView设置下划线方式正常情况下可以有五种设置下划线1.字符串资源中设置下划线属性(用<u>标签,最简单的方法)<resources> <string name="hello Android"><u>p...原创 2019-10-18 14:23:17 · 1946 阅读 · 2 评论 -
人脸识别的各大厂商
矿视faceID https://faceid.com/旷视人工智能平台 https://www.faceplusplus.com.cn/v2/pricing-details/云从科技 https://ai.cloudwalk.cn/海康 https://open.hikvision.com虹软 http://ai.arcsoft.com.cn/index.htmlUface ...原创 2018-12-19 17:29:24 · 6747 阅读 · 0 评论 -
RecyclerView侧滑菜单,滑动删除,长按拖拽,下拉刷新上拉加载
本文转自严振杰的博客 https://blog.csdn.net/yanzhenjie1003/article/details/52115566Feature以下功能全部支持:竖向ListView、横向ListView、Grid、StaggeredGrid四种形式。RecyclerView 左右两侧 侧滑菜单。菜单横向排布、菜单竖向排布。RecyclerView长按拖拽Item。R...转载 2019-03-13 10:50:54 · 593 阅读 · 0 评论 -
Android开发技术总结
1. 全部 Activity 可继承自 BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效。2. 数据库表段字段常量和 SQL 逻辑分离,更清晰,建议使用 Lite 系列框架 LiteOrm 库,超级清晰且重心可以放在业务上不用关心数据库细节。3. 全局变量放全局类中,模块私有放自己的管理类中,让常量清晰且集中.4. 不转载 2016-09-09 09:20:18 · 486 阅读 · 0 评论 -
fastjson转换json字符串异常
一、实体类通过fastjson转换以后缺少字段二、fastjson转换以后大小写异常1.先来说说第一种情况,发生第一种情况的原因是我的实体类中的get、set方法缺少其中一个,在通过fastjson转换以后就会出现缺少相关字段的问题,解决方法:补全get/set方法。2.服务端规定的字段ABcc,我们实体类也要上传这种字段,但是通过fastjson转换以后你会发现它会自动将...原创 2018-10-31 17:59:54 · 3409 阅读 · 0 评论 -
Android--截屏(支持Android7.1.1,无需root)
版权声明:本文为博主转载文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/80898936 import android.Manifest; import android.content.Context; import android.content.Intent; import a...转载 2018-09-30 15:13:34 · 1072 阅读 · 0 评论 -
RecyclerView不显示问题
当我们使用RecyclerView控件的时候可能遇到不显示问题,一般分为以下情况,一、RecyclerView和ScrollView嵌套使用出现RecyclerView不显示的问题,首先要确保你从服务端拿到的数据不是空的,1.第一种解决方式:只需要设置ScrollView的属性android:layout_height="match_parent" android:fillVi...原创 2018-08-22 14:56:01 · 19474 阅读 · 18 评论 -
Android5.1以上webView中图片显示过大的解决方式
当我们使用webView时可能遇到适配问题,图片过大以至于超出屏幕1.在android4.4以前是可以通过直接对webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);来设置加载的内容适应屏幕的宽度的,2.但是在Android高版本中你会发现通过第一种方式来设置是没有生效的,所以在高版本中推荐第二...原创 2018-08-22 11:01:39 · 3240 阅读 · 0 评论 -
Android功耗
人生有三大错觉1.手机振动2.他喜欢我3.我的app不耗电软件功耗的组成软件功耗主要包括9项功耗项 解释 usage 通用的功耗 CPU CPU的功耗 wakelock 唤醒带来的功耗 mobileRadio 移动无线的功耗 wifi wifi功耗 gps 定位的功耗 sensor 传感器的功耗 ...原创 2018-07-24 17:35:07 · 2022 阅读 · 0 评论 -
Android8.0安装apk没反应
今天在开发过程中遇到了一个问题,在apk更新下载后执行安装时,程序没有反应,如下: /* * 下载到本地后执行安装 */ protected void installAPK() { File apkFile = new File(mUpgradePath, "abc.apk"); if (!apkFile.exists()) ...原创 2019-05-16 17:50:01 · 3255 阅读 · 1 评论 -
百度语音合成出错 java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/message/BasicNameVal
集成百度语音合成,离线在线合成sdk的时候,出现崩溃现象。java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/message/BasicNameValuePair;Caused by: java.lang.ClassNotFoundException: Didn't find class "o...原创 2019-05-16 20:18:33 · 2846 阅读 · 0 评论 -
如何查看代码量
命令行查看git上的个人代码量:git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add,...转载 2019-05-29 20:13:57 · 5781 阅读 · 1 评论