安卓
文章平均质量分 59
ssuqin001
特立独行
展开
-
Android AudioService安全音量设置逻辑
还原出厂设置后,第一次启动安卓系统会自动降音量设成10,导致开机时音量不一致问题。原因:安全音量逻辑将音量设置为10转载 2023-03-06 15:24:44 · 541 阅读 · 1 评论 -
Android7.1.1对Type Toast的限制
在使用Type Toast悬浮窗的同时,使用了Toast,必现崩溃,即使catch 了Throwable也无法解决,但是将悬浮窗addView的代码注释之后则不出现崩溃;如果只有Type Toast悬浮窗,不会出现崩溃,3.5s后自动消失转载 2023-02-15 16:30:22 · 212 阅读 · 0 评论 -
android7禁用selinux,Android7关闭selinux(设置为Permissive模式)
Android7关闭selinux(设置为Permissive模式)转载 2023-02-12 10:42:40 · 590 阅读 · 0 评论 -
HDMI连接状态监测
需求:通过安卓系统获取HDMI连接状态。安卓获取HDMI连接状态有两种方法,一种是通过系统广播监听;另一种是读取系统文件,从而判断HDMI的连接状态。转载 2022-11-30 17:08:16 · 2168 阅读 · 1 评论 -
谈谈setFocusable、setFocusableInTouchMode、requestFocusFromTouch 之间的区别和联系
谈谈setFocusable、setFocusableInTouchMode、requestFocusFromTouch 之间的区别和联系转载 2022-09-28 20:37:47 · 1977 阅读 · 0 评论 -
Android制作并替换系统开机动画bootanimation.zip(需root)
一.Android默认开机动画是显示“android”字样的图片,想要替换掉“android”,需要用到bootanimation.zip.二.原生Android系统中好像没有bootanimation.zip,可以把bootanimation.zip文件放到设备system/media目录下(需要root权限)。放到此目录下后,开机会自动加载该文件里的图片,作为动画。三.bootanimation.zip内容和制作。1.解压.zip文件后,会有n个存放图片的文件夹+1个desc.txt文件。转载 2022-04-11 10:31:08 · 2380 阅读 · 0 评论 -
用ADB命令写Android自动化测试脚本
之前有用过monkey进行测试,简单测试一下稳定性;最近也简单了解了一下Espresso感觉还可以,可以对UI进行测试和校验;最近发现自己根据adb命令来写一下脚本来执行自动化测试也是不错的,比较有意思,主要是测试程序的稳定性脚本来执行测试的优缺点写起来容易 基本上可以实现90%以上的功能性覆盖 测试结果需要通过自己观察整个过程和日志文件来得出的 有些外部的动作,脚本是无法实现的,比如需要录入指纹 只适配特定尺寸的设备 没法对内容进行校验 执行命令间隔时间要把控好实现原理Espre转载 2022-04-09 11:50:55 · 3139 阅读 · 0 评论 -
Android YUV旋转花屏解决、Camera获取图像
一个自拍app,如何获取我们的surface view的截屏?在Camera的onPreviewFrame回调中(继承的PreviewCallback接口)。我们可以获取到data数组,里面存放着就是实时的图片data数组转文件为null,且转bitmap也为null怎么办?data数组里确实存放的是图片,但是格式不对,是YUV420格式。需要进行一个转换。所以采用open gl包下的YuvImage这个类可以解决转化的问题,他有一个compressToJpeg方法。转换成jpg格式,存到手转载 2022-04-06 17:54:39 · 771 阅读 · 0 评论 -
Android 系统签名打包方法
方式一 命令行生成(推荐):此方式不需要配置,步骤也不多。1、在应用程序manifest.xml文件根节点中加入属性:Android:sharedUserId=“android.uid.system”;2、在android系统目录build/target/product/security/拷贝系统签名文件:platform.x509.pem、platform.pk8;3、在out/host/linux-x86/framework目录下找到signapk.jar文件;4、把三个文件(plat转载 2022-03-22 17:43:53 · 4459 阅读 · 1 评论 -
将拖动的视图传递到放置的视图特效
android图片拖动放大In this tutorial, we’ll be implementing Android Drag and Drop functionality in our application. The Android Framework has a built-in mechanism for implementing Drag and drop feature in an application.在本教程中,我们将在应用程序中实现Android拖放功能。 Android框架转载 2022-02-04 21:15:56 · 193 阅读 · 0 评论 -
【无标题】
视频播放器在App是很常见的,有哪些视频播放器呢?具体情况该用哪款呢?这里我总结了常用的视屏播放Videoview、mediaplayer+surfaceview、vitamio、jcplayer的使用方法并写了各自的播放示例。代码在这里面项目目录:用到的视频地址:http://rbv01.ku6.com/omtSn0z_PTREtneb3GRtGg.mp4http://rbv01.ku6.com/7lut5JlEO-v6a8K3X9xBNg.mp4https://key003.转载 2022-01-30 15:03:55 · 182 阅读 · 0 评论 -
“The minCompileSdk (31) specified in a dependency‘s AAR metadata”报错解决
新建项目报错如下:找了很多博客都是说在build.gradle文件中添加如下代码:找了很多博客都是说在build.gradle文件中添加如下代码:然而并没有用,用谷歌翻译:原来是 minCompileSdk (31) >compileSdkVersion 30引起的报错,那我把compileSdkVersion的30改成31不就行了嘛,改成31后解决。本文转载自:https://blog.csdn.net/weixin_45401735/article/det...转载 2021-12-20 21:59:22 · 4346 阅读 · 0 评论 -
Android中Button的默认颜色去除
在xml文件中添加属性:app:backgroundTint="@null"(不能使用android:backgroundTint="@null")之后,再添加:android:background="@color/blue_FF5670FE"本文转载自:https://zhuanlan.zhihu.com/p/372953869转载 2021-11-18 17:11:36 · 1050 阅读 · 0 评论 -
DrawerLayout 关闭手势滑动
DrawerLayout这个控件默认是可以侧滑然后打开菜单的,那么我们如何关闭和打开它的滑动呢 在android抽屉开发中,需要关闭手势滑动,来滑出弹出框mDrawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);//关闭手势滑动mDrawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);//打开手势滑动同时,我们可能会左右两边都可以向中间.转载 2021-11-02 17:57:43 · 1153 阅读 · 0 评论 -
如何修改AndroidStudio默认浏览器
在setting 中IDE settings中的web browsers可以修改默认的浏览器的Step1: Step2: 本文转载自:如何修改AndroidStudio默认浏览器_jvedi的专栏-CSDN博客转载 2021-10-22 15:08:08 · 596 阅读 · 0 评论 -
2021-10-20
第一次遇到这个报错,表示三脸懵逼,还以为是原始 so 文件有问题。话不多说,我们来看看到底是什么问题呢~~~extractNativeLibs首先,需要弄明白 extractNativeLibs 是什么?以下为官方说法:android:extractNativeLibsWhether or not the package installer extracts native libraries from the APK to the filesystem. If set to fals转载 2021-10-20 12:01:19 · 1056 阅读 · 1 评论 -
关于 Unable to resolve dependency for ‘:app@debugAndroidTest/compileClasspath‘ 报错
Android studio升级到3.0往上之后,遇到的最恶心的一件事,本人及其懒惰,从来不写文章,但这个问题还是要记录下来。百度了NNNNN多之后,问题都没有解决,像关掉"offline work"开关、或者导入的model 的build版本不一致这种方案,我也不知道发帖子的人尝试过没有,反正千篇一律,但没有一个能解决问题的。吐槽的了那么多,上解决方案吧。原因呐,是因为代理中http和https冲突了首先,在设置中设置代理:然后,找到gradle.properties这个文件,将里面.转载 2021-10-18 19:59:29 · 348 阅读 · 0 评论 -
java实现CRC16 MODBUS校验算法
最近进行led彩屏通讯开发,接触到CRC16算法计算校验码,先附上两篇网上可用的代码 /** * 计算CRC16校验码 * * @param bytes * @return */ public static String getCRC(byte[] bytes) { int CRC = 0x0000ffff; int POLYNOMIAL = 0x0000a001; int i, j;转载 2021-09-08 21:30:07 · 2670 阅读 · 1 评论 -
JS in Android (Google V8)
简介由于项目动态化的需要,希望在 Android 应用中嵌入脚本语言。常见有 Lua 与 Js。Lua 的集成在之前的文章中已经介绍过。lua 是一个非常轻量的语言,专为嵌入而生,这是他的优势。但因为太轻了,可以说几乎没有标准库,这也使得用起来不是很方便。但目前最大的问题是 lua 脚本无法完美地运行在 web 与微信小程序中,而 js 在这方面有先天的优势。为了更加紧密地结合原生应用,要求是不依赖 webview,而是程序本身与脚本语言进行交互。鉴于 js 不像 lua 那样原生提供了交互 api转载 2021-09-07 17:53:43 · 642 阅读 · 0 评论 -
dlopen failed: “has text relocations“
问题现象复现步骤 Android 7.0平台 + 32bit CPU 安装中国移动的和彩云apk 启动该App时报错 分析定位初步分析相关错误log如下 07-13 10:33:13.317 11237 11237 E linker : /data/app-lib/hecaiyun_CMCC/libFastKDCore.so: has text relocations07-13 10:33:13.318 11237 11237 D AndroidRuntime: Shutt转载 2021-09-03 21:23:31 · 438 阅读 · 0 评论 -
Android串口(android-serialport-api )studio 编译 so库
个人记录SKD 7.0 以后使用串口serialport so库需要重新编译,不然会有提示弹出,解决方式重新编译最新so库。https://github.com/cepr/android-serialport-api github下载地址 jni 文件通过studio重新编译 so库通过以上链接下载找到 SerialPort.c SerialPort.h 两个文件,然后再项目中创建一个jni目录,将这两个文件放进去然后创建一个 Native C++ 新项目只为了拿 C...转载 2021-09-03 21:11:45 · 590 阅读 · 0 评论 -
Android报错:java.lang.IllegalArgumentException: Surface was abandoned
背景情况使用Camera2 Api 直接报错报错如下:java.lang.IllegalArgumentException: Surface was abandoned at android.hardware.camera2.utils.SurfaceUtils.getSurfaceSize(SurfaceUtils.java:89) at android.hardware.camera2.params.OutputConfiguration.<init&...转载 2021-08-19 17:44:45 · 1427 阅读 · 0 评论 -
android 全屏去掉底部虚拟导航栏的方法
@Overridepublic void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE .转载 2021-08-06 22:45:42 · 1079 阅读 · 0 评论 -
定制Android版本的chromium之笔记
在前面的两篇文章中,分别介绍了如何下载Google Chromium源码。以及编译Android版本的chromium浏览器。-------------------------------------------------------------------------------------------------------------准备知识在实际的开发中,如果直接在chrome的源码上修改代码,既费时也费力,在github找了一个可以直接用 Android studio 编辑调试的ch转载 2021-07-27 17:54:22 · 3017 阅读 · 0 评论 -
Android studio 的Ctrl+shift+F失效的解决方法
Android studio 的Ctrl+shift+F失效的原因是与搜狗繁简体切换冲突了。解决思路如下:进入搜狗输入法的属性设置点击 高级点击 “系统功能快捷键”把“繁简切换”的F快捷键换成其他字母,就OK了,如下本文转载自:https://blog.csdn.net/lixueqiang001/article/details/114600357...转载 2021-07-15 12:05:31 · 1111 阅读 · 0 评论 -
Android知识点:Cleartext HTTP traffic not permitted报错修复
Android知识点:Cleartext HTTP traffic not permitted报错修复问题描述 解决方法 方法1 方法2 方法3 OK问题描述开开心心打包app给测试大爷结果反馈啥权限都给了,就是连不上网!啥情况啊我测试机都没得问题!!没办法,拿测试大爷的手机来打一下断点就在下图位置出现了问题因为修复了,我就不复现了大概的描述就是ex的value =Cleartext HTTP traffic to XXX not permitted啥.转载 2021-07-03 14:11:54 · 1042 阅读 · 0 评论 -
华为手机无法使用adb wifi连接
仅充电模式下允许adb实测可以这个选项关闭立马不行华为mate20 proemui10.1备注:我在我的手机华为nova 5i emui10.0.0上测试也ok。本文摘自:https://club.huawei.com/thread-14890773-1-1.html转载 2021-07-02 16:39:10 · 1144 阅读 · 0 评论 -
Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
引用:https://blog.csdn.net/ouyang_peng/article/details/51168072armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它. arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。 armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。 x86: 平板、模拟器用得比较多。 x86_64: 64位的平板。问题描述.转载 2021-05-07 11:22:48 · 2753 阅读 · 0 评论 -
Android-armebi-v7a、arm64-v8a、armebi的坑
先来一波扫盲:armeabi:针对普通的或旧的arm v5 cpuarmeabi-v7a:针对有浮点运算或高级扩展功能的arm v7 cpu(32位ARM设备)arm64-v8a:64位ARM设备Android L开始才真正支持32位和64位的ART虚拟机,配合上64位处理器,名正言顺的运行64位软件兼容和文件读取顺序arm64-v8a是可以向下兼容的,其下有armeabi-v7a,armeabiarmeabi-v7a向下兼容armeabi对于一个cpu是arm64-v8a架.转载 2021-05-06 17:24:20 · 876 阅读 · 0 评论 -
gradle编译无法初始化jvm问题
用gradle编译ionic程序时,报以下错误:Error:Unable to start the daemon process.This problem might be caused by incorrect configuration of the daemon.For example, an unrecognized jvm option is used.Please refer to the user guide chapter on the daemon at http://grad转载 2021-03-29 11:12:07 · 1331 阅读 · 0 评论 -
Gradle Could not find tools.jar
I have a file called gradle.properties at the root of my project with the following property:org.gradle.java.home=C:\\Program Files\\Java\\jdk1.8.0_74org.gradle.java.home needs to point to avalid JDK location.本文摘自:https://stackoverflow.com/quest.原创 2021-03-29 11:09:15 · 287 阅读 · 0 评论 -
Cannot set the value of read-only property ‘outputFile‘ for ApkVariantOutputImpl_Decorated{apkData=M
android studio升级到3.1.4之后gradle里的很多配置也相应发生了一些改变。在打包的时候我就遇到了这样的问题。报错为:Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} of type com.android.build.gradle.internal.转载 2021-03-28 17:42:44 · 330 阅读 · 0 评论 -
AppCompatActivity隐藏顶部任务栏
AppCompatActivity隐藏支持行为栏getSupportActionBar().hide()全屏getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);本文转载自:https://blog.csdn.net/weixin_34405925/article/details/94133128...转载 2021-03-28 16:32:59 · 378 阅读 · 0 评论 -
Jackson快速入门
Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个。虽然JDK自带了XML处理类库,但是相对来说比较低级,使用本文介绍的Jackson等高级类库处理起来会方便很多。引入类库由于Jackson相关类库按照功能分为几个相对独立的,所以需要同时引入多个类库,为了方便我将版本号单独提取出来设置,相关Gradle配置如下。ext { jacksonVersion = '2.9.5'}dependencies { compile group: '...转载 2021-03-25 13:03:33 · 716 阅读 · 0 评论 -
gradle的全局配置
如果有多个module的配置是一样的,可以将这些配置提取出来,也就是使用全局配置。全局配置有多种方式,这里介绍其中的两种。1. 使用ext块配置在项目build.gradle中使用ext块,如下所示。GRADLEext{ compileSdkVersion =28 buildToolsVersion ="28.0.3" minSdkVersion =15 targetSdkVersion =28}在某个module的build.gradle中使用配置:GR...转载 2021-03-22 20:55:24 · 955 阅读 · 0 评论 -
couldn‘t find “libxxxx.so“的错误解决办法
引用了一些第三方的sdk的so库之后通常都会遇到这样的错误,("nativeLibraryDirectories=[/data/app/com.lukouapp-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libxxxx.so")因为手机的机型不同,so库的开发公司也各不同,有的so库兼容各种机型,兼容android api 17~28,有的so库只支持api>21的(如虹软的ArcFace的sdk的so库),下面分情况总结以转载 2021-03-01 16:41:52 · 3514 阅读 · 0 评论 -
javap 获取JNI方法签名
JNI动态注册时需要方法签名,可以自己手写,但是出错的概率比较高,也可以使用javap命令自动生成。找到要获取签名的Java class文件,比方MainActivity.class,进入包名的上一级目录。执行以下命令:javap -s com.jianshu.qianlang.jnitutorial.MainActivity输出结果如下,其中descriptor便是动态注册时需要的方法签名://... public native java.lang.String stringFromJNI()转载 2021-02-26 14:45:11 · 358 阅读 · 0 评论 -
Android属性excludeFromRecents的使用姿势
android:excludeFromRecentsandroid:excludeFromRecents=”true|false(默认)” :APP启动后不想在recents(任务管理器)中看到。在 AndroridMainifest.xml 的<activity>标签中使用姿势:AndroridMainifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http..转载 2021-02-24 11:19:50 · 690 阅读 · 0 评论 -
安卓插件化开发实践笔记
关于如何实现插件化开发教程,网络上有很多,我转载的文章中,就有很多,如:https://blog.csdn.net/n_fly/article/details/113785317https://blog.csdn.net/n_fly/article/details/113865757https://blog.csdn.net/n_fly/article/details/113865650已经足够详细。本文旨在对我在插件化开发实践中遇到了哪些问题,以及最终是怎么解决的,做个简单的记录,如果能顺原创 2021-02-19 16:12:38 · 155 阅读 · 0 评论 -
深入理解Android插件化技术
插件化提要可以说,插件化技术涉及得非常广泛,其中最核心的就是Android的类加载机制和反射机制,相关原理请大家自行百度。插件化发展历史插件化技术最初源于免安装运行apk的想法,这个免安装的apk可以理解为插件。支持插件化的app可以在运行时加载和运行插件,这样便可以将app中一些不常用的功能模块做成插件,一方面减小了安装包的大小,另一方面可以实现app功能的动态扩展。想要实现插件化,主要是解决下面三个问题:插件中代码的加载和与主工程的互相调用 插件中资源的加载和与主工程的互相访问转载 2021-02-19 15:43:29 · 238 阅读 · 0 评论