Android
文章平均质量分 54
Chelsea0522
活着就该逢山开路,遇水搭桥。生活,你给我压力,我还你奇迹!
展开
-
【Android】设置View 透明度
设置View透明度原创 2022-10-17 21:00:00 · 3987 阅读 · 0 评论 -
【Android】实现ImageView的scaleType的 “topCrop”
优先展示一个长图 上部分:即centerCrop改为topCrop原创 2022-03-18 10:20:48 · 2974 阅读 · 0 评论 -
【Android】页面禁止系统字体缩放 以及 显示缩放
废话不多说,直接贴代码禁止系统字体缩放在BaseActivity中或具体Activity中 添加如下代码 //字体大小不受系统字体大小改变的影响 @Override public Resources getResources() { Resources res = super.getResources(); Configuration config = new Configuration(); config.setToD.原创 2022-02-08 17:46:45 · 2246 阅读 · 0 评论 -
【Android】页面中任意位置滑动打开抽屉效果
DrawerLayout侧滑手势必须在屏幕边缘才可以,效果不错,但是实际用起来比较费力。我们现在要实现全屏手势侧滑,即:在Activity中,任意位置滑动打开抽屉效果分析转自 https://www.jianshu.com/p/432780e4749a效果图如下:实现方式:去掉ViewDragCallback的onEdgeTouch的实现重写onInterceptTouchEvent添加自己的拦截逻辑修改ViewDragHelper的mEdgeSizeViewDragHelper.Cal.原创 2021-12-13 12:03:25 · 2408 阅读 · 0 评论 -
Rsa公钥解密后有乱码(乱码+明文)
解密后有乱码,如下图(乱码+明文)究其原因是加密填充方式导致的: Cipher cipher = Cipher.getInstance("RSA");//错误,会导致乱码正确的应该是 Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");ok,修改之后正常显示了...原创 2021-06-02 16:56:10 · 4733 阅读 · 1 评论 -
Android开发,Android Studio 无线调试应用
应用场景:无线调试Android应用避免调试过程中断线烦恼避免多个手机都需要连线的杂乱直接说方法:方法一1、手机和电脑连接同一局域网(连同一个 WiFi)2、在手机的设置、网络连接查看连接的 WiFi 下手机的 IP 地址(部分手机打开无线调试即可看到ip)如下图3、手机连上电脑,输入命令:adb tcpip <端口号>,<端口号> 可任意取,只要没被占用,如 6666 adb tcpip 66664、拔掉数据线输入命令:adb connect &l原创 2021-05-13 13:51:24 · 303 阅读 · 0 评论 -
【Android】生成签名证书指纹
文章取自华为开放平台,仅供自己备忘参考签名证书指纹用于校验应用的真实性,您需要根据签名证书在本地生成签名证书指纹在生成签名证书指纹前需要满足以下两个条件:1、已创建应用程序的签名证书,签名证书创建请参见生成签名证书。2、当前PC已经安装JDK。操作步骤如下:Windows1、执行CMD命令打开命令行工具,执行cd命令进入keytool.exe所在的目录(以下样例为JDK安装在C盘的Program Files目录)。cd C:\Program Files\Java\jdk\bin2原创 2021-04-01 10:49:17 · 1490 阅读 · 2 评论 -
Android 多渠道打包productFlavors,微信WXPayEntryActivity回调问题
有些时候我们需要通过gradle中的productFlavors进行多渠道打包,但是两个包(包名不同)都需要有微信(微信登录、微信支付等),发现能调起微信,但是点击授权没有收到任何回调。这就需要对回调进行配置第一步在每个包名相应目录下新建一个 wxapi 目录,并在该 wxapi 目录下新增一个 WXEntryActivity 类,该类继承自 Activity。(直接将我们正常配置的wxapi,复制一份,考到相应渠道包对应的包名路径下)多渠道打包如下需要配置的wxapi第二步在Andro.原创 2021-03-20 14:42:37 · 695 阅读 · 0 评论 -
Android 取Gradle productFlavors中 manifestPlaceholders的值
一、manifestPlaceholders我们多渠道打包或者是类似的马甲包的时候,通常会用到GradleproductFlavors,这样如果不同应用我们可以采用manifestPlaceholders的方式来配置。但是如果我们想要在Activity中等引用这个值,避免手动修改该如何实现呢?我们先贴出Gradle productFlavors的写法代码: productFlavors { //正式 mixin { applicationId "com.lx.m原创 2021-03-19 10:20:37 · 2150 阅读 · 0 评论 -
Android WebView调用本地相册
长话短说,我们Android手机通过WebView打开H5页面。如果网页需要打开手机相册选取图片,不做任何处理的话是不可以选取的。我们需要重写WebChromeClient类的部分方法第一步,重写方法(WebChromeClient类中的)几个变量:private ValueCallback<Uri> mUploadMessage;private ValueCallback<Uri[]> mUploadCallbackAboveL;private final stati原创 2021-03-19 09:15:19 · 1285 阅读 · 0 评论 -
Android app启动白屏适配方案
至于app启动时候为什么会白屏,咱们不多赘述,相关的文章以及启动时间优化文章多了去了。咱们这里主要讲述优化完成后如何解决白屏问题。app启动时候黑屏或者白屏是还没加载到布局文件,就已经显示了window窗口背景,黑屏白屏就是window窗口背景。这样的话。我们可以将Windows背景设置成和启动页一样的背景。这样就ok了。解决要点:设置启动页背景和启动页之前的Windows背景保证背景不可以被拉伸保证部分手机底部虚拟键盘不遮挡设置启动页背景和启动页之前的Windows背景背景样式我们此.原创 2021-01-11 08:47:28 · 459 阅读 · 0 评论 -
通过Spannable对象设置textview的各种样式
通过Spannable对象我们可以设置textview的各种样式,其功能十分强大。通过SpannableString和它的setSpan(Object what, int start, int end, int flags)便可以对textview设置想要的效果了,这里的what就是效果名,start和end是设置这个样式针对的是textview的字符位置。1. 简单用法创建一个spannableString,textview可以通过setText设置这个对象,效果就是textview显示了测...原创 2020-07-07 16:07:30 · 456 阅读 · 0 评论 -
【Android】Gradle实现自动化打包
目的:通过一行命令实现Android 打包,生成apk一、Gradle环境配置1、jdk环境需要配置好(这点不在赘述)2、Gradle环境变量:windows(1)找到自己Android Studio目录下的gradle文件(也可以打单独下载:下载地址,记得要下载all版本的,里面包含了Gradle SDK 所有相关的内容,包括源代码、文档、示例等.)如:(C:\Program Files\Android\Android Studio\gradle\gradle-4.1\bin )按照配置.原创 2020-06-08 11:07:42 · 2626 阅读 · 0 评论 -
【Android】API版本对应Android系统版本及代号
原创 2020-04-11 11:54:18 · 5058 阅读 · 0 评论 -
【Android】App锁屏或者切到后台,调起服务;切换到前台,终止服务(针对声网聊天室声音采集问题处理)
一、应用场景1、语音直播、聊天室类的App,Android 9 设备,应用锁屏或切后台后一分钟内音频采集无效。从 Android 官网来看,这是系统强制限制。原文如下:Limited access to sensors in backgroundAndroid 9 limits the ability for background apps to access user input an...原创 2020-03-20 08:36:14 · 2400 阅读 · 0 评论 -
【Android】监听app锁屏或切后台,以及切换到前台
在我们实际的开发中。经常需要监听app锁屏或切后台,以便调起一个服务,使得App照常进行运行;或者是切换到前台,终止服务等等下面我们提供两个方法来获取状态的变化:方法1:通过ActivityLifecycleCallbacksandroid 在从sdk14 开始为我们提供了一个新的api 用于检测app 中activity 的生命周期,正好我们app 的minSdkVersion 已经设...原创 2020-03-20 08:35:19 · 2953 阅读 · 0 评论 -
获取android手机设备的OAID
一、简介:因传统的移动终端设备标识如国际移动设备识别码(IMEI)等已被部分国家认定为用户隐私的一部分,并存在被篡改和冒用的风险,所以在Android10及后续版本中非厂商系统应用将无法获取IMEI、MAC等设备信息。无法获取IMEI会在用户行为统计过程中对设备识别产生一定影响。近日移动安全联盟针对该问题联合国内手机厂商推出补充设备标准体系方案,选择OAID字段作为IMEI等的替代字段...原创 2020-03-03 13:42:49 · 62833 阅读 · 37 评论 -
简述Android手机常用的设备ID
漫谈唯一设备ID一、前言设备ID,简单来说就是一串符号(或者数字),映射现实中硬件设备。如果这些符号和设备是一一对应的,可称之为“唯一设备ID(Unique Device Identifier)”不幸的是,对于Android平台而言,没有稳定的API可以让开发者获取到这样的设备ID。开发者通常会遇到这样的困境:随着项目的演进, 越来越多的地方需要用到设备ID;然而随着Android版本...原创 2020-02-22 17:01:16 · 14534 阅读 · 0 评论 -
【Android】自定义progressBar样式
1、效果图如下2、layout中xml布局如下:<RelativeLayout android:layout_height="16dp" android:layout_width="match_parent"> <ProgressBar style="?android:attr/progressBarStyleHorizontal"...原创 2020-02-06 14:23:05 · 989 阅读 · 0 评论 -
【网易云信】自行实现陌生人防打扰功能
网易云信实现陌生人防打扰功能,即屏蔽陌生人消息。不可以给陌生人发消息陌生人定义:A关注了B,那么A不是B的陌生人,B可以给A发消息。即我的粉丝不是我的陌生人陌生人有点绕口。可以用关注来代替陌生人的概念我给用户A发消息效果图如下:逻辑流程如下:我查看用户A资料,在用户A资料中返回:is_can_send即:false:用户A开启陌生人保护+用户A没有关注我true:1、用户...原创 2019-12-28 10:10:04 · 1887 阅读 · 0 评论 -
优秀APP评定标准
优秀APP评定标准我个人认为应该从APP自身性能、APP UI、用户粘性方面进行分析一、APP自身性能app性能测试主要包含但不仅限于以下方面响应、崩溃、内存、cpu、GPU过度渲染、耗电(app除了这些性能测试,还有:FPS、耗流、手机版本号兼容性,屏幕分辨率兼容性,稳定性测试,安全测试等 )1、响应软件的响应时间和响应速度直接影响到用户的体验度,如果一个软件,迟迟加载不出来,...原创 2019-11-24 20:46:57 · 3445 阅读 · 0 评论 -
【内存泄露】GC及WeakReference的使用
一、简单说一下GC回收:GC :字面意思是垃圾回收器,让创建的对象不需要像c、c++那样delete、free掉 。对于c、c++的开发人员来说内存是开发人员分配的,也就是说还要对内存进行维护和释放。对于Java程序员来说,一个对象的内存分配是在虚拟机的自动内存分配机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,而且不容易出现内存泄露和内存溢出问题GC:Garba...原创 2019-11-19 21:10:32 · 1082 阅读 · 0 评论 -
【CodeReview】JSON取值空指针问题
JSONObject,JSONArray,Integer.如果接口数据格式返回错误。或者其他原因导致不存在该字段。导致崩溃比如:list_operation.getJSONObject("code");如果不存在code字段。取值时候回报空指针异常(java.lang.NullPointerException)。类型错误,会报类转换异常(java.lang.ClassCastExcept...原创 2019-11-09 18:54:44 · 1768 阅读 · 0 评论 -
【CodeReview】简述Collections.synchronizedList()的使用
简述Collections.synchronizedList()的使用code // 进场动效队列集合 private List<IEffect> list_effect = Collections.synchronizedList(new ArrayList()); /** * 方法:进场动效播放方法 */ pub...原创 2019-11-09 18:54:14 · 530 阅读 · 3 评论 -
【Git】Android Studio新建项目并通过Git上传到腾讯云
1.Android studio新建项目,不过多赘述,如下:2.在工具栏点击VCS,选择Enable Version Control Integration3.打开 版本控制选择弹框,选择git发现项目中的文件会变为红色4.获取到github远程仓库地址,在Android Studio中终端界面输入git remote add origin + github远程仓库地址(例如:gi...原创 2019-11-06 21:21:25 · 489 阅读 · 0 评论 -
【Android-Error】android.content.res.Resources$NotFoundException
遇到了一个很简单但是找了好大一会才发现的问题(android.content.res.Resources$NotFoundException)。简单记录一下异常如下图:造成这个问题的原因有这么几种吧:1.R文件引用错误2.inflate 文件的时候 R.Layout.****, 写成了R.id.*****3.文本渲染的时候 tv.setTest(),传了 int 类型腾讯bug...原创 2019-11-06 21:03:21 · 753 阅读 · 0 评论 -
【CodeReview】防止按钮多次重复点击(规定时间内不允许重复操作)
private static long lastTime = 0;/** * 间隔多长时间以后才能继续操作 * * @param time * @return true:不可操作,reture操作 */ public static boolean isInterval(int time) { boolean flag ...原创 2019-10-31 13:33:41 · 546 阅读 · 0 评论 -
【Openinstall】Android端集成及基本使用
openinstall - 产品概述1.首先贴出openinstall文档(点我查看)2.工作流程如下3.携带参数安装Openinstall的核心价值在于,帮助Android/iOS开发者精确的获取App每一次安装的分享(或推广)来源。4.渠道统计openinstall在精准的App分享来源跟踪的技术上,开发了免打包、跨平台的App推广渠道统计功能。5.快速安装与一键拉起Andr...原创 2019-10-23 17:33:52 · 2302 阅读 · 0 评论 -
【工作文档】声网Rtm 点对点离线消息 解决 声网音频直播下麦问题
此文章为工作备忘,与技术无关1.首先贴出声网文档地址:点我查看文档2.目前所遇到的问题针对声网音频直播上下麦逻辑问题(逻辑如下):上麦一般有两种逻辑。第一种:用户A给服务器发上麦申请,服务器告知主播B用户A的上麦申请,主播B告知服务器通过A的上麦请求,服务器通知用户A上麦请求通过。A上麦成功,然后A发送上麦成功消息给服务器,服务器发送A上麦成功消息给主播B。第二种:1、用...原创 2019-10-16 19:20:01 · 1276 阅读 · 0 评论 -
【Volley】Volley的网络请求有内存溢出现象
官网上有写,然后创建RequestQueue 的时候用Application的context。 If your application makes constant use of the network, it’s probably most efficient to set up a single instance of RequestQueue that will last ...原创 2018-03-30 14:21:09 · 627 阅读 · 0 评论 -
【支付宝】Android-支付宝支付时显示:系统繁忙,请稍后再试。错误码:ALI40247
这个问题: 官方解决方案:https://openclub.alipay.com/read.php?tid=250&fid=2 大功告成原创 2018-03-30 11:50:38 · 23782 阅读 · 1 评论 -
【Android】点击WebView中的按钮,关闭当前activity
项目开发中WebView用的很多。但是,有时候不仅仅是展示。还需要交互。比如点击WebView中的按钮,关闭当前activity等等。正常WebView加载不在多说。分别说一下,前后端处理方式:1.服务端:在html网页编写的时候。点击按钮添加点击事件:<!DOCTYPE html><html> <head> <...原创 2018-02-24 17:31:57 · 7286 阅读 · 0 评论 -
【微信支付】Android 端集成微信支付
微信支付的集成 不管是你之前做没做过微信支付,或者是集成其他的一些第三方,都首先阅读官方文档,多读几遍,看看官方demo,问题都会迎刃而解。一、首先介绍一下公司产品经理需要申请的一些东西以及服务端需要的配置1.申请开发者资质 地址:https://open.weixin.qq.com/ 使用公司管理者/高层帐号登录微信开放平台,进入“账号中心”,进行开发者资质认...原创 2017-12-08 10:39:40 · 3667 阅读 · 1 评论 -
【Volley】Volley StringRequest 或 JsonObjectRequest请求数据,中文显示乱码
自定义request类 目的:修改volley编码为utf-8 1.StringRequestimport com.android.volley.NetworkResponse;import com.android.volley.Response;import com.android.volley.toolbox.HttpHeaderParser;import com.andro原创 2018-01-09 15:15:55 · 573 阅读 · 0 评论 -
【支付宝】Android 支付宝支付 沙箱测试(交易状态错误ALI3174)
一.首先说明一下 APP测试注意事项(Android):1. APP支付只支持Android版接入,在使用sdk时,在支付接口前调用如下方法 EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX); 否则还是会默认调起正常的手机支付宝app如下图: 2.交易状态错误ALI3174 沙箱测试付款须知:需使用沙箱账号中的买家...原创 2018-02-09 19:01:01 · 6383 阅读 · 0 评论 -
【Android】Android 监听软键盘 弹出和隐藏 (通过一个类解决)
废话不多说, 添加下面这个类:package com.dianjing.utils;import android.app.Activity;import android.graphics.Rect;import android.view.View;import android.view.ViewTreeObserver;import android.widget.Toast;/原创 2018-02-01 09:29:33 · 6200 阅读 · 4 评论 -
【百度地图】Android端集成百度地图,定位当前城市
百度地图定位原创 2017-11-17 17:07:44 · 6858 阅读 · 0 评论 -
【ProductFlavors】Android差异化打包productFlavors ( 一套代码生成两个APK)
有些时候,因为业务扩展,需要两个相同的app,通过分支管理,两套代码当然ok,但是这样后期维护,BUG修复总不能两套代码同时修改吧,这里推荐使用productFlavors差异化打包,一套代码生成两个APK一、Flavor创建在APP中build.gradle文件中的一段代码: android { ... } //差异化打包 productFlavors {原创 2017-10-30 10:04:12 · 3716 阅读 · 0 评论 -
【Android】Android App打开手机QQ、微信等应用
打开手机QQ ,微信 Android原创 2017-10-18 18:10:20 · 5549 阅读 · 0 评论 -
【极光推送Jpush】Android集成极光推送及其基本使用
极光推送(jpush),数据库原创 2017-04-08 14:29:48 · 2389 阅读 · 2 评论