知识积累
华灯雨
这个作者很懒,什么都没留下…
展开
-
Android Webview跳转Deeplink链接方案实现
Android Webview默认无法自行处理Deeplink链接,需要shouldOverrideUrlLoading处理URL过滤出链接后显示调用跳转。原创 2023-02-22 11:32:28 · 817 阅读 · 0 评论 -
Android获取ECGI,LAC的方式
首先ECGI的定义:▊ECGIE-UTRAN Cell Global Identifier E-UTRAN小区全局标识符ECGI由PLMN+Cell Identity组成,用于在PLMN中全局标识一个小区。Cell Identity(小区标识)由EnodeB ID+Cell ID组成。其中包含28bit信息,前20bit表示EnodeB ID,后8bit表示Cell ID。ECGI (not more than 52 bits) = PLMN ID+ ECI▊ECIE-UTRAN Cell I原创 2021-08-06 15:05:55 · 1265 阅读 · 0 评论 -
填坑华为手机误报采集位置信息问题
今天一个接入方坚定认为我们SDK采集了用户位置信息,理由是每调用一次SDK华为的权限记录里面就会多一条采集位置信息记录。后来经过排查是因为采集了WIFI信息在华为手机上误报为采集了位置信息,试了下小米手机并不会误报为采集位置信息。 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LO.原创 2021-07-21 11:42:08 · 198 阅读 · 0 评论 -
Webview File 同源策略绕过漏洞修复方案
1.将不必要导出的组件设置为不导出,并显式设置所注册组件的"android:exported”属性为 false;2.如果需要导出组件,禁止使用File域WebView.getSettings.setAllowFileAccess(false);3.如果需要使用File协议,禁止File 协议调用JavaScript: WebView.getSettings.setJavaScriptEnabled(false)ps:组件导出定义:组件的导出具体表现在清单文件中,组件中存在"android:expo原创 2021-07-08 14:26:35 · 813 阅读 · 0 评论 -
快速GitLab变更项目/文件地址的方法
1、通用模式2、编辑模式直接编辑想要变更后的路径即可原创 2021-07-05 16:27:56 · 1175 阅读 · 0 评论 -
Android studo推送新的工程到GitLab
https://jingyan.baidu.com/article/9c69d48fe68cce13c9024e9c.html转载 2021-06-15 10:57:48 · 230 阅读 · 0 评论 -
Android native JNI so Crash报错还原堆栈排障操作记录
最近某接入方反馈了一个so库里面的Crash问题提供的错误日志未native崩溃日志 以前从未遇过这种问题记录一下还原堆栈的过程首先找到NDK路径下的arm-linux-androideabi-addr2line.exe绝对路径然后在命令行运行路径\arm-linux-androideabi-addr2line.exe -C -f -e 路径\xxx.so 0001707e (堆栈信息)即可追踪到具体错误位置...原创 2020-10-22 16:12:04 · 1067 阅读 · 0 评论 -
Android SDK使用了JS桥接方法实现与H5交互 混淆问题
最近遇到一个问题,就是直接dependcySDK工程是可以正常运行的但是使用了aar包后就总是无法实现js交互后来发现是sdk在混淆的时候没有处理js桥接方法的混淆如果代码中使用了js桥接与前端交互的话 不但要使用addJavascriptInterface还需要在混淆的时候配置-keepattributes *Annotation*-keepattributes *JavascriptInterface*-keep class xxx.xx.xxx.xx.x.xxactivity$*{*;原创 2020-10-20 12:22:04 · 526 阅读 · 0 评论 -
Android studio报错 lllegal forward reference
将方法中报错lllegal forward reference的key申明提前就行了原创 2020-09-08 10:14:45 · 740 阅读 · 0 评论 -
Android使用Webview访问一些需要下载资源的地址没有反应的问题
设置即可: mWebView.setDownloadListener(new DownloadListener() { @Override public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { Uri uri = Uri.parse(u原创 2020-08-31 18:15:30 · 628 阅读 · 1 评论 -
关于开发Android系统app小结以及问题记录
最近有个需求需要为接入方做一款定制APP作为其品牌手机的系统帐号 因为没有做个系统app所以很简单的功能实现起来简直就是全是坑1.首先厂商很多API Android SDK都是没有提供的 所以需要通过反射来实现 但是即使我们通过反射实现很多还是需要系统签名才能够生效 有一个禁用下拉的功能 做好之后无论怎么验证都不生效 但是又找不到任何问题 后来发现只要签上系统签名就能生效了2.系统级APP不支持Webview 如果需要使用Webview就不能添加android:sharedUserId="android原创 2020-08-14 11:19:03 · 176 阅读 · 0 评论 -
Android指纹识别功能开发遇到的坑记录
现在主流的指纹识别其实使用的都是接入的一些收费的SDK,通过原生开发之前自学的时候简单接触过一次 最近有个需求需要用原生的API实现指纹识别的功能 记一下遇到的坑首先指纹识别功能开发的教学文档比比皆是 可以随便搜索到讲述的也都很相信 我就没有必要赘述了 直接进入正题1、首先指纹开发只支持android 6.0 即SDK 23以上的机器 这其中也有很多厂商的部分设备在调用的API时返回不正常 需要做好心理准备和具体应对措施2、系统指纹库如果发生变化API也是没有提供接口给我们调用的去监控的 如果为了安全原创 2020-07-06 16:27:09 · 1733 阅读 · 2 评论 -
Android最近任务预览页面,概览屏幕预览图修改,敏感信息预览图隐藏实现
在需要改变预览图的Activity中设置getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,WindowManager.LayoutParams.FLAG_SECURE);即可原创 2020-06-28 14:26:19 · 1147 阅读 · 0 评论 -
Android沉浸式状态栏最简单的实现
不用导入工具包不用弄一大堆 只需要一个简单的工具类最简单的实现沉浸式状态栏package cn.com.chinatelecom.account.sdk.auth;import android.app.Activity;import android.content.Context;import android.graphics.Color;import android.os.Build;import android.view.View;import android.view.ViewGrou原创 2020-06-23 11:28:58 · 5544 阅读 · 5 评论 -
RSA加密坑记录
最近一个需求遇到了一个坑 就是通过RAS加密手机获取的私网ip然后进行传输开发的时候测试一直都是正常的 但是等后端上线后突然发现报错IllegalBlockSizeException 明文长度非法后来排查后发现是因为手机获取到了三个ipv6一个ipv4 总共125个字节 但是RSA最多只能加密117个字节因为服务端已经上线了也没法改逻辑了 所以很坑...原创 2020-06-19 11:49:57 · 314 阅读 · 0 评论 -
Python网络爬虫入门实践教学以及填坑记录
最近一直看到网络爬虫的广告本身就有点兴趣加上一个小伙伴可能需要学习并且使用 所以就先尝试学习了一下 填填坑 这东西理论啊什么都是一大堆 我也不是专业人士 就不多加介绍了 需要去学习原理和理论的可以去Git上看一下大神的讲解这篇博客的目的也是因为网上很少真实的入门教学 所以写一篇既能方便新人尝试又能记录自己遇到的坑 所以全部都是干货1.首先下载配置Python环境地址:下载地址这里有个坑需要注意一下:因为这个是较为新的版本 需要可以自动配置环境不需要自己去手动配置环境变量了 网上很多教学都还是需要原创 2020-06-22 09:40:54 · 265 阅读 · 0 评论 -
Json转化为实体Bean的使用以及gson.fromJson空指针问题记录
想要将得到的Json数据转化为相应的实体需要使用到gson这个工具包具体步骤:1.引入依赖/***build.gradle中引入工具包*/implementation 'com.google.code.gson:gson:2.8.5'2.使用 Gson gson; ResultBean resultBean = gson.fromJson(JSONTool.stringToJSON(result),ResultBean.class);这里遇到了一个问题:java.lang.原创 2020-06-04 10:19:23 · 1644 阅读 · 0 评论 -
Android项目导入aar包记录
组件化开发的需要 经常需要我们进行aar包的导入开发1.首先将aar包直接复制粘贴到我们的工程目录app下面的lib中:2.在build.gradle中加入: //name为libs目录下.aar文件名称,ext为.aar的扩展名 implementation(name: 'test', ext: 'aar')repositories { flatDir {// dirs 'libs','../CtBiomSdk/libs' dirs 'libs'原创 2020-06-01 12:09:07 · 1863 阅读 · 0 评论 -
Git提交规范插件——git commit template插件使用记录
为了规范化团队代码提交,可以对git提交规范进行一定的约束 方便后期管理维护1.首先第一步在file-settings-plugins marketplace中搜索插件git commit template2.第二步 提交时原创 2020-06-01 12:04:13 · 2410 阅读 · 0 评论 -
记startActivityForResult和onActivityResult的用法——Android页面跳转回调传值
一.简述之前实习的时候开发的是功能型软件 有很多填写页面的需求所以用的还是挺多的 但是太久不用了 又用的不是很熟悉了 今天使用时有一点困惑结果百度半天也没有很好地博客 所以弄清楚后就自己记录一篇 以防下次又要找半天首先在android中从一个activity跳转到另一个activity有很多种方法,但是如果要是想实现去另一个页面只是为了一系列操作 但是操作后的结果还需要带回当前页面处理 那么startActivityForResult就是首选了。二.代码演示activity1 : //跳转原创 2020-05-22 10:49:52 · 696 阅读 · 0 评论 -
Flutter混合开发升级Flutter SDK 记录
1.下载好新的Flutter SDK2.替换SDK路径 三个地方分别是:1.系统环境变量2.Android Studio中的Dart sdk3.Android Studio中的Flutter路径3.命令行 Flutter clean4.主工程app build目录删除5.主工程clean project运行即可...原创 2020-04-30 14:38:17 · 314 阅读 · 0 评论 -
Android富文本SpannableString的基本使用以及补充
今天看到一个大佬写的博客介绍了一个神奇的组件——SpannableString 有时候有需求要求我们对TextView实现各种效果 例如对部分文字改变颜色 改变大小等等之前都是通过设置资源文件或者在java中设置资源文件修改的 但是有些特殊的还是解决不了 例如文字中混搭了图片就很不好处理 用了这个控件就可以轻松实现很多功能了上效果:可以轻松实现以下效果:自定义文本中文字的字体大小(包括绝...原创 2020-04-29 11:19:24 · 275 阅读 · 0 评论 -
ViewPage+Fragment通过懒加载实现性能优化(避免Fragment加载两次多加载)
最近做一个本地文件管理的功能 因为数据量比较大 使用起来非常卡顿 后来作为菜鸟的我发现Fragment每次都被加载了不止一次 然后研究了好久的Fragment的生命周期还是找不到为什么Fragment的onActivitycreate等进行了两次 后来经过排查才发现是因为使用了ViewPage使得Fragment的生命周期变得没有意义了 Viewpage会将你需要的Fragment周边的Fragm...原创 2020-04-22 17:06:47 · 415 阅读 · 0 评论 -
Textview内容过多实现可滑动
Textview内容过多实现可滑动.setMovementMethod(ScrollingMovementMethod.getInstance()); 然后如果想要隐藏掉滑动条选择android:scrollbars=“none”原创 2020-01-10 16:11:51 · 1127 阅读 · 0 评论 -
Android控件设置透明度的方式
总结一下Android控件设置透明度的方法1.在java代码中通过.getBackground().setAlpha(12);setAlpha()的括号中可以填0–255之间的数字。数字越大,越不透明。2.在资源文件中android:alpha="0.5"1表示完全不透明 0表示完全透明3.通过background设置#AARRGGBB”。AA即透明度,颜色和不透明度 (alp...原创 2020-01-10 15:45:09 · 766 阅读 · 0 评论 -
Notification实现通知栏显示上传下载进度条
首先上效果图:一共是两种效果 第一种是利用系统自带的组件实现的 第二种是利用自定义的View首先附上工具类代码:package com.cn21.oosdemo;import android.annotation.TargetApi;import android.app.Notification;import android.app.NotificationChannel;i...原创 2020-01-07 15:53:05 · 1511 阅读 · 3 评论 -
TextSwitcher的使用以及问题记录
TextSwitcher 字面理解是文字交换器,是ViewSwitcher的子类,从ViewSwitcher来看,是View交换器,TextSwitcher继承自ViewSwitcher,显然是交换TextView。1.使用代码package com.example.myapplication3;import android.app.Activity;import android.os....原创 2019-12-27 10:24:14 · 545 阅读 · 1 评论 -
使用TrafficStats实现获取当前App的实时流量网速
直接上代码1.工具类package com.cn21.oosdemo.utils;import android.content.Context;import android.net.TrafficStats;import android.os.Handler;import android.os.Message;import java.util.Timer;import java...原创 2019-12-16 15:49:32 · 1226 阅读 · 3 评论 -
记录一些使用的网络框架Demo
刚工作没有多久,一切东西都是在公司已有代码上进行的,然后平时学习也没有机会进行网络相关的练习。近期有了一个做一个简单的上传下载的Demo的需求,于是将所做所用的有用知识积累下来 也方便共享使用1.首先第一个要推荐的是GitHub上一个大佬提供的一个开源的基于Rxjava2+Retrofit2的RxEasyHttp这个Demo功能齐全,star数已经证明了一切直接下载下来的没法直接跑 需要进行...原创 2019-12-16 15:45:29 · 105 阅读 · 0 评论 -
targetSdkVersion版本过高 降级操作
最新版本的Android Studio已经强制创建targetSdkVersion为29的项目,但是有些东西到了高版本又没法适配,所以可以通过手动降级的方式1.修改app中的build.gradle 为低版本的2.修改gradle. properties3.最后把相关的布局文件进行修改就行了...原创 2019-12-16 14:21:51 · 7091 阅读 · 0 评论 -
Set集合详解
Set集合,基础自Collection。特征是插入无序,不可指定位置访问。Set集合的实现类可说是基于Map集合去写的。通过内部封装Map集合来实现的比如HashSet内部封装了HashMap。Set集合的数据库不能重复(== 或 eqauls)的元素Set集合的常用实现类有 HashSet TreeSet详细介绍...转载 2019-12-09 09:46:27 · 154 阅读 · 0 评论 -
Android 软键盘事件imeOptions响应
在android发开过程中,有时候需要对EditText的软键盘进行监听。当点击软键盘回车位置按键的时候,需要实现 完成、前进、下一项、搜索、发送或其他功能,这就需要开发者对软键盘回车的点击事件进行捕捉。比如在登录界面,需要用户在输入密码之后点击软键盘回车直接登录,不必再去点击屏幕上的登录按钮。我们就可以在密码使用的EditText设置 android:imeOptions=”actionDo...原创 2019-12-06 11:18:12 · 360 阅读 · 0 评论 -
SharedPreferences在Android中的简单使用简介以及记录
SharedPreferences 是一个轻量级的存储类,主要是保存一些小的数据,一些状态信息原理内部是以 XML 结构保存在 /data/data/包名/shared_prefs 文件夹下,数据以键值对的形式保存。如下:<?xml version='1.0' encoding='utf-8' standalone='yes' ?><map> <flo...原创 2019-12-05 10:39:23 · 168 阅读 · 0 评论