![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
我的Android之路
pgc_tel
简简单单写点代码
展开
-
Android Jetpack中Lifecycle使用生命周期感知型组件处理生命周期
在上述示例中,我们创建了一个LifecycleObserver对象,并在其内部使用@OnLifecycleEvent注解来监听ON_RESUME和ON_PAUSE事件,并在对应的方法中执行相应的逻辑。然后,在你的Activity或Fragment中创建一个LifecycleObserver对象,并使用@OnLifecycleEvent注解来实现相应的生命周期方法。你可以根据需要在LifecycleObserver对象中监听其他生命周期事件,并在对应的方法中处理相应的逻辑。原创 2024-01-13 14:00:00 · 526 阅读 · 0 评论 -
Android 判断网络wifi是否可用工具类
【代码】Android 判断网络wifi是否可用工具类。原创 2024-01-12 09:50:00 · 641 阅读 · 0 评论 -
Android UnknownFormatConversionException: Conversion = ‘得‘
格式化字符串输出时,任何未明确定义为转换的字符都是非法的,在格式字符串中使用此类字符将导致 UnknownFormatConversionException。而%这个符号就是表示一个格式的起始符号,所以当我们接了一个%后代表我们将要对后续的字符进行转换,但我们只是想把他当做一个普通的%,所以报了错。在download_test_mp3_progress中运用到了占位符%1$d,而后在后面又紧接了% ,运行时就报了错。将需要正常展示的%改写成 %% 即可。原创 2024-01-12 09:42:30 · 552 阅读 · 0 评论 -
Android java.util.IllegalFormatConversionException: d != java.lang.Double
原因:使用占位符时使用了%1$d,然后传入的数值为double类型的数值,所以导致报错。直接使用 %1$s进行占位,传入的值使用String.valueOf()转换。原创 2024-01-03 15:26:47 · 522 阅读 · 0 评论 -
Android 配置不同应用ID
在AndroidManifest.xml文件中,您还可以配置应用ID。在创建项目时,使用不同的应用ID。如果您想在同一项目中创建多个变体,可以在build.gradle文件中的productFlavors部分配置不同的应用ID。通过这些步骤,您可以配置不同ID的应用,并在同一设备上安装和运行它们。请注意,应用ID是唯一的,不同的应用ID将被视为不同的应用。在Android中,每个应用都有一个独特的应用ID,用于唯一标识该应用。在创建项目对话框中,选择"Edit"选项并输入自定义的应用ID。原创 2023-12-27 17:45:13 · 830 阅读 · 0 评论 -
Android 权限申请
在应用的清单文件(AndroidManifest.xml)中声明需要的权限。在Android中,从Android 6.0(API级别23)开始,应用在运行时需要动态申请权限。检查应用是否已经被授予所需权限。用户将会看到一个权限请求对话框,您可以在。如果应用没有所需的权限,您可以使用。方法中处理用户的响应。原创 2023-12-21 21:23:27 · 642 阅读 · 0 评论 -
Android ViewModel的简单应用
ViewModel 的生命周期与相关的 Activity 或 Fragment 绑定,当相关组件销毁时,ViewModel 的实例会被销毁。在 Activity 或 Fragment 中使用 ViewModel:在需要使用 ViewModel 的 Activity 或 Fragment 中,通过 ViewModelProvider 获取 ViewModel 的实例。使用 ViewModel:在获取了 ViewModel 的实例之后,即可使用 ViewModel 中定义的数据。原创 2023-12-20 20:14:32 · 532 阅读 · 0 评论 -
Android 版本控制工具--Git
安装Git:首先在你的开发环境中安装Git。在Windows中,你可以从官方网站(https://git-scm.com/downloads)上下载Git的可执行文件并进行安装。在Mac上,你可以使用Homebrew(https://brew.sh/)进行安装。在Linux上,你可以使用你的发行版的包管理器进行安装。当然,Git也有更多高级的功能和命令,你可以通过查阅Git文档或教程来了解更多。配置Git:在安装完成后,你需要配置你的Git。这将显示所有的提交记录,包括作者、日期和提交消息。原创 2023-12-19 20:23:58 · 599 阅读 · 0 评论 -
Android studio 多渠道打包步骤
在Android Studio的菜单栏中,选择Build -> Build Bundle(s) / APK(s) -> Build APK(s)。通过上述步骤,就可以在Android Studio中使用Gradle的多渠道打包功能生成不同渠道的应用包。每个渠道的应用包都包含了对应渠道的包名、签名和资源文件。在Android Studio中,可以使用Gradle的多渠道打包功能来生成不同渠道的应用包。构建完成后,在app模块的build/outputs/apk目录下会生成不同渠道的应用包。原创 2023-12-17 08:30:00 · 580 阅读 · 0 评论 -
Android 解决Connection timed out: connect或者部分第三方库下载超时问题
之前比较老的项目重新打开,因为Android Studio 版本已经升级,导致原来部分的第三方库需要重新下载,但是因为墙或者其他原因,一直下载超时。后续解决了此问题,在此记录一下。原创 2023-12-18 08:00:00 · 1135 阅读 · 0 评论 -
Android Kotlin Viewbinding封装
【代码】Android Kotlin Viewbinding封装。原创 2023-12-11 11:21:13 · 775 阅读 · 0 评论 -
Android Kotlin语言下的文件存储
此方法接收两个参数:第一个参数用于指定SharedPreferences文件的名称,如果指定的文件不存在则会创建一个,SharedPreferences文件都是存放在/data/data//shared_prefs/目录下的;这个方法接收两个参数:第一个参数是文件名,在文件创建的时候使用,注意这里指定的文件名不可以包含路径,因为所有的文件都默认存储到/data/data//files/目录下;不同的是,当数据库不可写入的时候(如磁盘空间已满),原创 2023-12-09 11:22:35 · 1554 阅读 · 0 评论 -
Android 实现羊了个羊初步代码记录
Android实现羊了个羊原创 2022-12-08 10:29:04 · 867 阅读 · 1 评论 -
Android 关于不规则图像涂鸦问题记录
关于不规则图像涂鸦问题记录原创 2022-11-16 12:16:30 · 1054 阅读 · 0 评论 -
关于使用apksigner.bat对APK进行重新签名记录
项目进行加固之后,需要对APK进行重新签名,因为升级了AS版本,发现以前的签名方式无法进行签名了,搜索了一下发现可以使用apksigner.bat进行APK签名,而且比以前的更加方便,再次记录一下。 进入到这个目录中,然后找到 build-tools文件夹进入,选择自己的版本文件夹进入,就可以找 到apksigner.bat了...原创 2022-07-13 13:57:37 · 1608 阅读 · 0 评论 -
Android Could not resolve all files for configuration ‘:app:_internal_aapt2_binary‘.错误解决办法
Could not resolve all files for configuration ':app:_internal_aapt2_binary'.错误解决办法原创 2022-06-08 18:48:56 · 2797 阅读 · 0 评论 -
Android 可长按拖拽的RecyclerView
近期项目遇到需要拖拽的RecyclerView来实现需求,首先考虑了ItemTouchHelper 这个类,但是后续使用发现无法把item视图拖出RecyclerView的视图范围,于是打算自定义RecyclerView来实现长按item可在屏幕内随意拖拽,在此简单记录一下。实现效果主要思路继承RecylerView,重写dispatchTouchEvent 根据findChildViewUnder和getChildAdapterPosition方法获取到手指所在的View和索引 .原创 2022-04-12 16:50:19 · 4995 阅读 · 6 评论 -
Android dialog沉浸式状态栏
在项目开发中使用了沉浸式布局,所以对于dialog也需要沉浸式布局,刚开始使用dialog发现无法呈现沉浸式布局,在使用了个Activity的设置也不行,后面查询了一些资料,发现在高版本中使用设置layoutInDisplayCutoutMode参数,再此记录一下,下面是封装的代码(PS:代码封装使用的viewbinding)原创 2021-11-23 17:42:20 · 4563 阅读 · 1 评论 -
Android 关于给APK签名的记录
今天需要在APP商城进行应用认领,需要给一个没有签名的APK进行签名,OPPO官方给的是签名代码是 jarsigner -verbose -keystore android.keystore -signedjar OppoSignVerify_signed.apk OppoSignVerify.apk android.keystore发现使用后报错,说是没有...原创 2021-08-20 11:55:00 · 129 阅读 · 0 评论 -
Android 音视频配音之音频提取、截断、混音、合并、合成(二)——将提取的PCM根据时间戳截断
前言1.该文章系列是视频配音,涉及到把背景音频从视频中提取出来、背景音频根据台词时间戳进行截断、截断的背景和录音混合、混合音频进行拼接合并、合并后的音频转码为m4a格式、将m4a格式音频和视频合并生成mp4视频文件2.使用的视频格式:MP4 音频格式以及编码:m4a(aac) 采样率:44100 声道:双声道 采样位数:163.文章使用的测试音频为http网络视频,如果不是在视频丢失的情况下无法读取,请阅读一下该文章:Http网络请求无响应解决办法4.Android 音视...原创 2021-03-12 15:55:01 · 928 阅读 · 0 评论 -
Android 音视频配音之音频提取、截断、混音、合并、合成(一)——从视频中提取音频文件
前言1.该文章系列是视频配音,涉及到把背景音频从视频中提取出来、背景音频根据台词时间戳进行截断、截断的背景和录音混合、混合音频进行拼接合并、合并后的音频转码为m4a格式、将m4a格式音频和视频合并生成mp4视频文件2.使用的视频格式:MP4 音频格式以及编码:m4a(aac) 采样率:44100 声道:双声道 采样位数:163.文章使用的测试音频为http网络视频,如果不是在视频丢失的情况下无法读取,请阅读一下该文章:...原创 2021-01-08 17:43:09 · 1866 阅读 · 3 评论 -
Android 版本更新------后台服务和前台通知栏实现
前言:最近公司项目版本需要把以前的版本更新代码更新一下,换成Service和前台通知栏形式的,所以在此记录一下。目录1.检测版本更新(省略)2.创建Service开启前台通知栏,并且执行下载任务,将下载进度通知到通知栏,下载完成后进行安装 完整的Service代码Service所用到的变量补充2.开启一个透明InstallApkActivity执行安装Apk操作 Activity代码工具类代码3.注意事项:因为24版本之后读取文件需要配置FileProvider,不然..原创 2020-12-31 17:19:39 · 665 阅读 · 2 评论 -
Android Http网络请求无响应解决办法
关于Android 9.0以及高版本项目无法支持http请求的解决办法原创 2020-12-18 10:10:17 · 1882 阅读 · 0 评论 -
Android 在Dialog中使用RecyclerView的问题
项目中使用到Dialog展示数据,于是使用了RecyclerView,刚开始没什么事,后续出现数据过多导致无法滑动,经过测试发现是Dialog布局使用了ConstraintLayout导致的,随后写死RecyclerView的高度,可以滑动了,但是太影响美观,因为数据少的情况会出现一大块空白,随后又试过其他方法,还是无法完美解决,只能弃用,改用LinearLayout,完美解决。猜想造成的原因可能是ConstraintLayout无法确定RecyclerView距离导致的,在此记录一下。...原创 2020-11-19 18:20:58 · 2987 阅读 · 0 评论 -
Android 使用AIDL进行两个APP之间通讯以及相互消息回调(一)
前言:AIDL:Android Interface Definition Language,翻译过来就是Android接口定义语言。是用于定义服务器和客户端通信接口的一种描述语言,可以拿来生成用于IPC的代码。所以使用AIDL需要一个服务端和客户端作用:可以在一个进程中获取另一个进程的数据和调用其暴露出来的方法,从而满足进程间通信的需求。1.AIDL支持的基本数据类型八种基本数据类型...原创 2020-04-13 15:12:07 · 3141 阅读 · 0 评论 -
Android MP3的截取合并操作
Android MP3的截取合并操作转载 2019-10-17 15:28:31 · 365 阅读 · 0 评论 -
Android 解决因Android版本太低,导致Could not find class 错误的解决办法
近期项目在测试过程中,在Android 5.0版本的测试中(以前APP测试未出现),GreenDao 出现 Could not find class 'org.greenrobot.greendao.database.StandardDatabase' 错误查阅资料后发现是Android 的4.4分包机制导致,也就是说当你的DEX文件方法超过65536后应用就已经饱满了。所以就会出现以上错误。解原创 2018-01-02 15:31:01 · 6511 阅读 · 1 评论 -
Android设置十六进制颜色不同透明度对应的值
在项目中,难免会出现需要设置视图背景的透明度的问题,有时候我们可以通过设置Alpha来设置视图的透明度,但是在某些控件上却行不通,所以考虑从十六进制的颜色来入手,对应透明度如下100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 734原创 2017-06-09 12:33:53 · 1300 阅读 · 0 评论 -
Android 固定头部的ListView以及下拉刷新(附源码)
先上图前言:由于这段时间项目中需要用到这个功能,所以在此小计,以便以后方便查看实现的原理很简单,就是给ListView设置一个HeanderView,当ListView数据第一行在顶部的时候,将HeanderView视图显示就行。所以我们需要建立俩个HanderView的xml第一个HeaderView布局listview_headerview1.xml原创 2016-10-18 11:16:25 · 2514 阅读 · 1 评论 -
关于Android导入工程时有红色感叹号的解决方案
关于红色感叹号是Android导入工程很容易碰到的,现在为大家分享一下博主的经验有红色感叹号无外乎有俩种可能1.路劲错误2.SDK版本错误解决问题一: 点击工程属性Properties------------->Java Build Path ------------------->Libraries,然后点击带有红色叉号的,再点击Edit选择你的SDK路径原创 2015-07-21 17:23:25 · 849 阅读 · 0 评论 -
Android 关于Scrollview和listview嵌套以及下拉刷新问题(附源码)
本人Android菜鸟,在做东西时候发现有时候我们需要在项目中使用scrollview和listview的结合才能使项目看起来更加完善,但是谷歌官网是不推荐scrollview和listview一起嵌套的,因为这俩个东西嵌套后会出现很多事件冲突。但是有时候就是需要这样的搭配怎么办?所以有些牛人自定义了view来满足这样的需求。好了,废话不多说,上代码package com.exampl原创 2015-12-01 15:18:18 · 3600 阅读 · 6 评论 -
Android 多渠道打包
最近在做友盟统计需要用到多渠道打包,在网上搜集了一些资料发现使用兰贝壳儿打包简单方便,下面我就来介绍一下怎么把兰贝壳儿插件集成到eclipse中,步骤很简单1.下载我上传的文件原创 2016-06-29 19:04:47 · 607 阅读 · 1 评论 -
Android 仿QQ分组管理可拖动Item的ListView(附源码)
趁着周一休息,更新一下博客。最近项目中使用到了分组管理,需要实现Listview的Item拖动处理。查略一下资料和借鉴了别人的代码将功能实现了。现在整理一下代码,方便自己以后学习具体思路如下重写ListView的onInterceptTouchEvent方法进行控件的touch事件拦截这个方法的作用很简单:当我们摁下的如果是可拖拽的图标,那么进行初始化该Item的映像试视图。同时在拖动原创 2016-07-25 14:20:37 · 3343 阅读 · 5 评论