![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 56
码龙-
NO means next opportunity or new option.
展开
-
Activity、Window、DecorView的关系
在注释(3)可以看到Activity持有PhoneWindow并初始化了PhoneWindow实例,在注释(4)中调用PhoneWindow的setCallback方法将activity实例设置给PhoneWindow,这一点很重要,我们在看DecorView的代码时候,看到的mWindow.getCallback()方法,实际就是获取DecorView相对应的Activity实例。至此,我们知道了在注释(14)中,我们熟悉的activity中的onResume()方法是被。原创 2024-07-03 12:40:15 · 542 阅读 · 0 评论 -
java中==和equals区别
java中的 “==” 、“equals” 以及 hashCode都能起到比较的作用,那么它们的区别又是什么呢?一、操作符 == 如果是比较基本类型,如int,long等,它们的比较就是“值”的比较;如果是比较对象实例,那么比较的是它们两个所指向的对象在内存中的存储地址是否是一致的。而不是比较它们的内容。、1.对基本类型使用操作符 ==int类型的比较例子如下: int x = 1; int y = 1; Sy...原创 2021-04-08 09:28:10 · 131 阅读 · 0 评论 -
Android 系统的启动流程
Android启动流程原创 2023-02-28 17:09:27 · 1593 阅读 · 1 评论 -
Android 系统框架结构
大部分开发的同学是不太清楚Android的系统的基本架构的,特别是应用层开发的同学,故经过该文章的介绍,希望同学们对Android的架构有基本的认识。类似于网络的五层结构,Android系统结构也有着其五层结构,从底层到上层是一个把硬件抽象化,然后再接口化以及应用调用接口的过程。原创 2023-01-11 09:21:14 · 2703 阅读 · 0 评论 -
logcat: Unexpected EOF!的解决方法
logcat: Unexpected EOF!的解决方法!原创 2022-08-05 17:43:21 · 5561 阅读 · 1 评论 -
fragment如何获取activity的点击事件
fragment中有一个弹框,需要在整个activity被触摸时将该弹框进行隐藏,但是在fragment中的view只能获取到fragment被触摸的事件,而不能直接获取activity的触摸事件,如果想要获取activity的触摸事件,我们可以怎么做呢?...原创 2022-08-05 15:38:03 · 1386 阅读 · 0 评论 -
gerrit中如何切换远程服务器
当你使用的远程服务器要更换的时候,即代码转移到新的gerrit服务器上了,是否一定需要重新配密钥,且需要重新拉代码呢。其实大可不必,重新拉一份代码太大费周章了,使用命令切换远程服务器即可。以下是一个从192.168.8.67切换到192.168.1.80远程服务器的例子。...原创 2022-07-30 14:34:16 · 594 阅读 · 0 评论 -
编译Android项目的时候提示非法字符:“\ufeff”的解决方法
当编译一个新导入进Android studio的项目编译后提示非法字符:“\ufeff”的错误提示时,只需要将将字符改为GBK,然后再转化为UTF-8即可解决。原创 2022-06-07 09:58:08 · 1292 阅读 · 3 评论 -
使用sqlite3语句后出现省略号 ... 的解决方法
当在linux系统中打开数据库,然后使用sql语句,然后如下图遇到出现省略号...>问题如何解决?原创 2022-06-06 16:08:39 · 915 阅读 · 0 评论 -
git 中stash的实用方法
git stash : 存储所有改动;git stash pop : 释放第一次改动相关文件;git stash push /.../... : 存取指定的文件;git stash -m "存储的信息" : 给当前压栈存储的修改添加说明信息(如果没有指定信息,则说明信息为最新的commit信息)git stash list : 查看所有的压栈修改;git stash show stash@{0} : 查看某一个压栈修改了哪几个文件;git stash show -p stash@{0原创 2022-05-12 15:12:48 · 58986 阅读 · 5 评论 -
打开Source Insight 出现闪退的问题解决
打开 Source Insight 出现闪退情况,具体情况如下:出现以上画面之后立即闪退。解决方法:右键点击 Source Insight 图标--->属性---->兼容性--->以兼容模式运行这个程序:如下图:点击应用和确定,即可解决问题。...原创 2022-03-03 09:58:27 · 1384 阅读 · 0 评论 -
使用AlarmManager不准时的解决方法
最近我们公司的产品被客户投诉定时关机偶现不准时和偶现不起作用的问题。具体复现操作是定时一段比较长的时间进行自动关机就很容易出现该概率问题。 由于这个定时关机功能是前同事实现的,所以我得查看代码,查看跟踪代码发现该定时方式使用的是使用了AlarmManager里的set()方法:AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);alarm...原创 2022-02-24 11:40:55 · 3835 阅读 · 3 评论 -
如何获取未安装apk应用的包名、应用名以及版本信息等
在Android开发过程中,在做是否可安装第三方应用的功能的时候可能需要先判断应用的信息,比如包名,当通过apk的包名判断到该apk不能够被安装的时候,我们将不允许安装。那么对于未安装的应用,我们如何获取其应用相关信息呢,其实知道了该第三方apk的路径我们就可以获取其应用信息了。 public String getPackageName(Context context, String apkPath) { PackageManager pm = context.getPackag原创 2022-02-17 09:56:17 · 2334 阅读 · 2 评论 -
如何使用signapk.jar给APK签名
当应用的UID为system时,是不能直接在Android机器上安装的,会提示"安装失败"或者提示"应用未安装";如图:问题原因:因为系统签名不一致,需要拿到系统签名,然后给应用重新签名.问题解决:(1) 准备好签名工具signapk.jar (工具链接:)(2)拿到机器系统应用需要的签名文件.pem和.pk8.(如platform.pk8和platform.x509.pem)(3)把将要签名的应用(如 text.apk),signapk.jar,.pem和.原创 2022-02-15 15:57:41 · 4041 阅读 · 0 评论 -
如何修改commit中的提交人信息
如图,在Gerrit中push代码的时候,提示失败,原因是在提交的这些commit修改中,包含了作者不是自己的commit,以至于其他是自己的修改commit也不能提交。 因为我们的commit信息有可能是通过导入补丁而来的,如果生成该对策的补丁的修改对策是其他人的修改,那么commit信息中的作者就是他的,如果你直接push将会报错,那么这个时候就需要找到那条作者不是自己的commit信息。步骤:1.查询之前的commit提交记录:git rebase ...原创 2021-08-19 11:46:30 · 4704 阅读 · 1 评论 -
Android中设置color透明度百分比的参考表
在Android设置color时,可通过以下方式设置(RGB值及透明度):#1A56c8a9 解释:以上为16进制,前面两位1A为透明度,56为R值,c8为G值,a9为B值,1A换算为十进制则为1*16+10=26(A为10,B为11,C为12,D为13,E为14,F为15),最大值为FF,换为十进制则为15*16+15=255,对于RGB值,数值越大,颜色越浅;对于透明度,数值越大,透明度越小。例如透明度为1A,即为十进制的26,则透明度为26/255约=0.1019...原创 2021-07-29 20:11:41 · 1276 阅读 · 1 评论 -
Android如何实现全局的护眼模式
最近接到一个需求,是 一个做护眼模式的需求,且要求是在Android全局,即在任何场景都可使用,思考了会和查阅资料,考虑到其实可以用一个淡黄色的透明遮罩盖在上面的方法。要求这个遮罩不影响其下面的应用等正常的使用。 如果直接在应用中开启一个蒙层activity,那么退出这个activity或者关闭应用,护眼模式就会被关闭,显然这是不符合我们的要求的,所以我们可以开启一个服务,然后在这个服务中添加这个遮罩。即可实现我们的所有全局操作都在护眼模式之下了。以下是开启...原创 2021-07-27 11:47:56 · 1991 阅读 · 2 评论 -
Android中如何判断是否正在播放视频
在AudioManager中有一个isMusicActive()方法,该方法可用来判断当前是否在播放音乐或者视频。/** * 判断是否在播放音乐或者视频 * @param context * @return */private boolean isMusicOrVideoPlay(Context context){ AudioManager audioManager = (AudioManager) context.getSystemService(AUDIO_SER...原创 2021-07-19 19:06:20 · 3673 阅读 · 4 评论 -
Android编译出现FAILED: setup-jack-server问题的解决办法
在编译Android的时候出现了如下错误:[ 28% 1127/3932] Ensuring Jack server is installed and startedFAILED: setup-jack-server图:原因:jack在编译的时候,可能出现多个人在同时编译的情况,这个时候就有可能出现两个人用同一个端口,发生端口冲突以至于超时。解决办法:修改端口号(修改 .jack-settings和.jack-server/config.properties文件)...原创 2021-07-09 14:39:33 · 3008 阅读 · 4 评论 -
将drawable对象转为json遇到的坑
如图 要持久化存储一个对象,需要先将对象转化为字节流,我使用的是谷歌的gson,如图对含有Drawable的实体对象转string时,会,在转化的时候报了转化异常,需要先将drawable转化为string类型,然后在main方法中使用gson转化第17行报错:实际上是...原创 2021-07-07 10:12:17 · 459 阅读 · 2 评论 -
如何在源码编译中给应用添加第三方jar包
如果我们在Androidstudio中使用第三方jar包,只需要在gradle文件中添加依赖,例如:implementation 'com.github.ybq:Android-SpinKit:1.2.0' 但是我们有很多在系统中的应用,用到了很多系统库,不能够直接在Androidstudio中编译,需要在系统环境中编译,这些应用从源码中导出来的也是没有gradle文件的,所以不能直接添加依赖,需要配置应用的Android.mk文件。操作步骤: ...原创 2021-06-29 11:38:55 · 529 阅读 · 0 评论 -
“Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:”的解决方法
Android studio升级到最新版本之后出现 “Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:”的报错提示:如下图:解决方法: 将 “File – Project Structure – Project”路径下的Gradle version改为最新版本:步骤如下:1)点击左上角的File-->Proje...原创 2021-04-21 10:45:28 · 53363 阅读 · 6 评论 -
理解java的异常分类及其处理,看这一篇文章就够了
前言: 异常是指程序的指令没有被正常执行的情况,这些情况会让程序异常退出,在Java中有两种类别的异常:Error和Exception。Error和Exception都是继承于Throwable类。一.Error Error 类对象由 Java 虚拟机生成并抛出,不可捕捉,程序本身不能处理。这种情况下会导致程序异常崩溃,如下图的Error继承结构可看出,Error下会有许多子类。例如较常见的Error异常StackOverflowError(某个线...原创 2021-02-08 11:41:59 · 451 阅读 · 3 评论 -
java中的垃圾回收(GC)机制
前言: 垃圾回收机制是Java语言中一个非常重要的机制,在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这些由JVM来处理。那么在java中什么是垃圾?什么是垃圾回收?如何回收?接下来我们一一探讨。一.什么是垃圾 在Java中,如果一个对象没有被其他对象所引用,那么该对象就会被认为是无用的,就被称为 “ 垃圾 ”。二.什么是垃圾回收 在以上提到“垃圾”的概念,回收其所占用的内存空间,就叫做 “ 垃圾回收 ”。三.如...原创 2021-02-02 17:36:42 · 258 阅读 · 1 评论 -
testview使用setText的时候出现android.content.res.Resources$NotFoundException: String resource ID #0x3c报错
Android 开发时使用testview的setText时候出现了以下报错:Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x3c原因: setText()中传入的参数为int类型。解决办法: 使用String.valueOf ( )将int类型的参数转化为String类型。...原创 2021-01-28 16:48:29 · 477 阅读 · 1 评论 -
Android Studio中gradle一栏中出现nothing to show 提示的解决方法
今天在准备构建应用版本的时候,点击gradle,但在这一栏中没有编译选项,而是如下图,显示 “ nothing to show ”的提示:使用了几个方法都不奏效,最后直接关掉项目然后重新打开,gradle就正常显示了...原创 2021-01-25 15:03:04 · 1425 阅读 · 1 评论 -
android 开发注册蓝牙广播BluetoothDevice.ACTION_FOUND查找周围设备,没有接收到发现广播的解决方法
我需要开发一个发现附近蓝牙设备的需求,然而注册了BluetoothDevice.ACTION_FIND广播之后且开启了一个蓝牙设备,但却接收不到这个广播,经过查询和搜索了资料发现,在Android 6之后需要在配置文件添加两个新的权限,且在代码里需要动态请求权限: 步骤如下:1.在Manifest配置文件中添加以下两个权限:<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>...原创 2021-01-11 16:07:49 · 2620 阅读 · 4 评论 -
adb命令发送广播的方法
在Android开发的时候,广播组件是经常被我们使用到的,当我们自定义一个广播接收者,或者注册好了一个系统广播,是需要测试是否能正常接收到广播的。例如有这么一个需求: 设备在完成开机之后,需要弹出一个开机完成的小提示。那么我们就需要监听开机广播,在收到 " android.intent.action.BOOT_COMPLETED "开机广播之后,在开机广播接收方法里完成弹窗操作。 如果没有使用adb广播发送广播测试,以前我们可能会手动去开关机,这样费时又费力。其实...原创 2021-01-11 14:45:43 · 15726 阅读 · 0 评论 -
Android 使用AudioRecord时出现java.lang.UnsupportedOperationException: Cannot create AudioRecord问题解决方法
使用AudioRecord创建对象的时候出现了以下报错: java.lang.UnsupportedOperationException: Cannot create AudioRecord原因:可能是Android设备录音权限没有开放所导致。解决方法:1.在AndroidManifest.xml文件中添加以下录音权限<uses-permission android:name="android.permission.RECORD_AUDIO" />...原创 2020-12-24 15:07:47 · 1115 阅读 · 0 评论 -
Android使用ListView中给控件设置了“android:clickable=“false“属性,Item点击依然没有回调
使用ListView开发列表的时候,使用mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {}方法后点击没有回调点击事件;原因:Item列表项中有可点击控件获取了焦点,优先获取了点击处理权;解决方法:1.给列表项里面的控件添加以下属性android:focusableInTouchMode="false"android:clickable="false"an...原创 2020-12-06 21:50:50 · 1413 阅读 · 3 评论 -
Android手机调试使用AudioRecord调用录音时“UnsupportedOperationException: Cannot create AudioRecord“问题的解决办法
开发录音功能,使用Android真机调试的时候,安装了应用之后报错:UnsupportedOperationException: Cannot create AudioRecord原因:在Android6.0版本以上使用AudioRecord类开发录音功能,需要权限;解决办法:1.在AndroidManifest.xml文件中添加录音权限。<uses-permission android:name="android.permission.RECORD_AU...原创 2020-12-05 23:51:44 · 703 阅读 · 0 评论 -
Android中如何设置Button不能点击
Android中使Button不能点击的方法有两种:方法一:通过方法设置属性:Button.setEnabled(false);方法二:在xm文件中设置属性:android:enabled="false";原创 2020-11-30 17:07:48 · 5592 阅读 · 0 评论 -
解决ListView的onItemClick事件无法响应的问题
开发的时候使用了ListView,但是需要使用到点击事件的时候,点击Item没有回调到onItemClick()方法:原因:当前写的Item项中含有Botton,ImageButton等能够获取焦点的子控件,当点击Item时是回调的是子控件。解决方法:1.给子控件设置属性,让其不能获焦android:focusable="false"2.在item Layout的根控件中设置属性,让其子控件不能获焦android:descendantFocusabi...原创 2020-11-25 15:50:34 · 557 阅读 · 0 评论 -
设定Android应用只能横屏或者竖屏显示方法
Android 中设定应用只能横屏或者只能竖屏显示的方法:1.保持竖屏显示的方法:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);2.保持横屏显示的方法:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);...原创 2020-11-18 17:22:31 · 1318 阅读 · 1 评论 -
使用install安装应用的时候出现INSTALL_FAILED_SHARED_USER_INCOMPATIBLE问题的解决方法
安装应用的时候出现了INSTALL_FAILED_SHARED_USER_INCOMPATIBLE的错误原因: 这是由于manifests中使用了sharedUserId,但使用不同的签名造成的。解决方法: 将manifests文件中的android:sharedUserId删掉。...原创 2020-11-11 09:20:11 · 6632 阅读 · 3 评论 -
Android Studio中运行项目出现 Connection refused: connect问题的解决办法
在Android Studio 中新建了一个项目,运行时出现了以下错误:Connection refused: connect 解决办法: 将以下截图中的代理信息删除掉,重新编译即可原创 2020-10-21 11:18:25 · 3519 阅读 · 1 评论 -
Flutter中使用的dart语言和Java语言的差异以及相似之处
前言:对于学过或者有Android开发经验的同学来说,对于Java 语言可以说是相当的熟悉的了,但对Flutter有兴趣的部分同学而言,想要学习Flutter,是需要先了解Dart语言的语法的,dart语言其实和Java语言是有很大的相似之处的,为了能让大家更快的对dart语言有一个初步的认识,博主在这给Java和dart语言进行一个异同之处的对比。1.变量Dart定义变量时可以不预先定义变量类型,程序会自动推断类型,定义变量可以通过 var 关键字来申明变量...原创 2020-09-30 17:16:57 · 2032 阅读 · 1 评论 -
Flutter简介:
Flutter简介:一,(what)是什么: Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。==>解释:1)跨平台:现在Flutter至少可以跨4种平台,甚至支持嵌入式开发。我们常用的有Linux、Android、IOS,甚至可以在谷歌最新的操作系统上Fuchsia进行运行,经过第三方扩展...原创 2020-09-30 16:25:14 · 437 阅读 · 0 评论 -
Flutter项目构建出现Gradle threw an error while downloading artifacts from the network.问题的解决办法
Flutter构建的时候出现Running Gradle task 'assembleDebug'...[!] Gradle threw an error while downloading artifacts from the network. Retrying to download...Exception in thread "main" java.util.zip.ZipException: error in opening zip file at java.util.zip.Zi...原创 2020-09-25 16:52:56 · 10610 阅读 · 0 评论 -
Android 安装应用的时候提示Failure [INSTALL_FAILED_VERSION_DOWNGRADE]的解决方法
使用adb install 命令安装Android应用的时候提示Android Failure [INSTALL_FAILED_VERSION_DOWNGRADE],是因为该Android机器中已经存在了比这个应用的版本号更高的同包名应用。解决方法:adb install -r -dC:\Users\zl\Desktop\xxx.apk(包名)解释:我们可以通过adb help命令看一下-r 和-d的意义 可以看到:...原创 2020-08-05 16:15:48 · 16923 阅读 · 1 评论