![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 58
i听音乐的猿
一个小小程序猿
展开
-
Android 消息分发机制解读
并开始无限循环,也就是App的心脏,一直跳动,负责协调分配来自各方的事件,让App不断响应用户操作,如果主线程出现了异常,也就是心脏跳动异常停止,那么App的生命随之终止,也就是常见的‘进程已停止运行’。那么,你有没有想过,既然他在一直无限循环,为什么没有卡死呢?为什么能看到“应用无响应”?怎么保证界面刷新不受其他事件影响,怎么做到有条不理的处理每一条消息等等这些问题呢,作为一名Android开发者,我想我们有必要对其结构进行简单了解。至此,相信你对消息分发机制也有大概的理解。原创 2023-12-06 23:31:32 · 367 阅读 · 1 评论 -
Android Sutdio依赖Snapshot版本,无法同步最新的包(已完美解决)
局域网中搭建了Nexus托管本地打包的aar,正常情况下,把修改完成的库推送到仓库后,其他项目引用Snapshot版本的依赖,同步后会马上下载最新的包,但是当第二次+推送后,就没有重新下载最新的包,导致代码一直飘红,但是build的时候,可以看到输出的日志中有。,这样删除会导致所有本地的依赖缓存文件被删掉,打开项目需重新下载所有依赖,首次编译时间会变长,或许可以找到那个有问题的包,单独把他的缓存删掉,没试过。,就是刚上传的最新的包,结果编译成功。原创 2023-10-08 10:27:02 · 454 阅读 · 0 评论 -
Android 自定义View 处理多点触控,实现双指支持同时缩放平移
Android 多点触控,实现类似地图效果,同时支持缩放平移原创 2022-09-28 19:20:14 · 3481 阅读 · 2 评论 -
自定义一个倒计时控件
通过绘图实现一个带进度条的倒计时控件原创 2022-07-25 14:14:36 · 347 阅读 · 0 评论 -
Adnroid Studio kotlin 报错AssertionError: Could not delete caches xxx kotlin\compileKotlin文件名太长
起因Android Studio使用kotlin 编写代码 编译时频繁遇到java.lang.AssertionError: Could not delete caches dir xxx\build\kotlin\compileKotlin ,文件名太长等问题,必须重启软件 或在任务管理器中结束占用该目录的java进程关掉才能正常编译,但是没过多久又会报这个错误;原因Android Studio 的Kotlin插件和项目中使用到的kotlin版本不一致导致解决办法我们可以从两方面解决:改变项原创 2022-02-16 10:24:20 · 4193 阅读 · 4 评论 -
Android 接收系统分享的文件
Android 接收系统分享的文件测试使用环境:小米11 Android 11代码如下:XML清单 配置<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.int原创 2021-10-18 11:11:40 · 2166 阅读 · 2 评论 -
Android Studio无线调试软件
Android 开启无线调试环境要求PC端需要配置Adb环境使用python脚本需要python3.0+环境原生命令行方法调用把设备通过数据线连接到PC中执行命令adb devices -l 有设备即可打开Android设备调试端口5555 执行命令adb tcpip 5555打开成功后,此时可拔掉数据线执行无线连接命令adb connect 172.16.10.11连接成功即可拔掉数据线使用脚本,一键连接既然是执行固定操作,那么我们就可以通过脚本控制,获取设备信息打开原创 2021-06-11 17:39:40 · 374 阅读 · 3 评论 -
Android 快速查找当前页面Activity名称(三种办法)
# 主要分两种方式进行查找## 第一种:通过Android studio 自带工具查找在顶部菜单执行如下操作:tools-->layout inspector然后选中对应de原创 2021-05-28 09:51:07 · 8047 阅读 · 1 评论 -
Android 分享图片、gif 到微信等第三方应用
分享图片到第三方应用(微信)时,正常调用代码: Uri uri=getFileUri(context,"文件全路径不包含文件名","文件名包含扩展名"); Intent intent = new Intent(); ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI"); intent.setComponent(原创 2021-02-23 11:51:56 · 1042 阅读 · 4 评论 -
android studio 生成自定义安装包名称
在app的build.gradle文件下编辑如下: buildTypes { android.applicationVariants.all { variant -> def _debug = "" if (variant.buildType.name != 'release') { _debug = "_debug" } variant.outputs.al原创 2020-09-15 20:08:05 · 750 阅读 · 0 评论 -
MPChart 柱状图 基础用法
先看一下效果首先我们来初始化一下barchart的配置: private void initBarChar(BarChart barChart) { XAxis xAxis = barChart.getXAxis(); //关闭右边纵轴 barChart.getAxisRight().setEnabled(false); //关闭图例 barChart.getLegend().setEnabled(fal.原创 2020-07-30 09:06:07 · 943 阅读 · 0 评论 -
Android Switch控件 用代码打开开关但是不需要触发OnChangedListener事件
*这里做个笔记(小白问题,大神绕道)switchTest.setSelected(true);这样就好了。原创 2020-04-14 11:50:13 · 1116 阅读 · 1 评论 -
Android(Java)使用Des加密后结果多了一个\n
使用Des加密的时候想必有人遇到过这种问题,每个加密结果都会带有一个换行符号,其实这是Base64对byte数组编码成字符串时flag值得问题解决办法:flag使用Base64.NO_WRAP Base64.encodeToString(bytes, Base64.NO_WRAP);下面接Base64关键源码(废话开始):首先是编码函数???? /** * Ba...原创 2020-04-14 11:46:51 · 692 阅读 · 0 评论 -
Android 项目 引用了第三方aar 同步成功 但是编译时报错 跟这个aar 相关的类全部飘红
遇到个奇怪的问题 记录一下:有个项目能正常编译运行 ,几天没有打开过,今天一打开那个aar相关的类找不到了 aar还在,然后我做了一下无用工作:把项目下的.idea、.gradle、还有各个模块的build目录全部删除 再编译 还是报错 把代码commit一下,结果发现没有改动过任何文件,然后我又把每个模块删了 再重新往svn拉代码,还是报错 创建另外一个目录把代码checkout进去...原创 2020-04-10 14:30:18 · 706 阅读 · 2 评论 -
Android 引入第三方so后启动报错 /lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "xxx.so"
缘由:由于项目需要,引用了不同平台的so文件,分别a.so, b.so ,其中a.so 只有armabi-v7a版本,b.so通过gradle配置自动下载,编译运行后程序启动,运行到需要使用a.so 的地方直接闪退;报错:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file ...原创 2020-03-12 18:34:56 · 10419 阅读 · 0 评论 -
Gradle sync failed: EventQueue.isDispatchThread()=false Toolkit.getEventQueue()=com.intellij.ide.Ide
新建module后,上面显示 Gradle sync 同步失败,build窗口一直卡在同步中,卸载重装 更换sdk,删除.gradle和 android配置文件夹都没有用原创 2019-12-10 09:35:09 · 2269 阅读 · 0 评论 -
Android Exception occurred while dumping:
遇到好几次这个问题了,这里做个笔记,防止下次出现同样的问题,浪费时间寻找解决办法;出现问题的原因:拷贝了一份项目,更换了项目的文件夹名字,重新编译运行,编译通过,安装时报错Exception occurred while dumping:解决办法:由于复制的项目,原来的缓存文件还在,同时还出现 部分配置文件出现重复的现象,把.dea、.gradle文件夹删掉,然后在Android stu...原创 2019-10-29 17:08:05 · 1675 阅读 · 0 评论 -
Gson 和fastjson之间日期转换
fastjson中指定日期格式:String json= JSONObject.toJSONStringWithDateFormat(Obj,"yyyy-MM-dd HH:mm:ss"));Gson中指定日期格式: GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setDateFormat("yyyy-MM-d...原创 2019-10-18 14:41:57 · 536 阅读 · 0 评论 -
Android Gson 解析Json数据过程和如何自定义解析规则(下)
上两篇文章主要讲述寻找问题根源到解决思路,解决办法比较复杂,这里提供一种最简单的解决办法,不需要改动太多的东西:比如一般后台返回的数据格式如下:正常数据{"code":200,"data":{"id":"adsd","name":"Weipru"},"msg":"success","timeStamp":"20191015102953"}不存在data的数据{"code":...原创 2019-10-15 17:04:51 · 578 阅读 · 0 评论 -
Android Gson 解析Json数据过程和如何自定义解析规则(中)
根据上篇文章,我们要把解析入口走我们自己的流程,我们需要一个自己的 GsonConverFactory 但是又不想写其他代码,只想改关键地方,我们肯定会想到直接继承GsonConverFactory 但是很遗憾,这个类带final 不能被继承,所以,我们可以直接把这个类复制一份处理,一步一步的自定义我们自己的适配器;我们的目标就是把Object类型和Collect类型解析自定义通过源码发现,...原创 2019-10-15 16:11:47 · 1105 阅读 · 0 评论 -
Android Gson 解析Json数据过程和如何自定义解析规则(上)
友情提示:当前文章和(中)均为过程实际没有完美解决问题,真正解决问题的是直接看结果背景Android开发与后台API对接时,使用Gson库做数据转换,但是实际测试发现不够灵活,当Gson处理正常数据时,整个流程是正确的,比如获取用户信息返回正确数据{"code":200,"data":{"id":"adsd","name":"Weipru"},"msg":"success","ti...原创 2019-10-15 11:28:06 · 1146 阅读 · 0 评论 -
usb调试已经打开,但是adb调试时不显示Android 设备,资源管理器可以正常读取文件
确保usb调试已经打开,使用adb devices命令结果为空,但是打开资源管理器能正常读取手机的文件、sd卡;打开设备管理器看驱动是否正常果然显示有未能识别的设备,并且在列表中并没有看到Android Phone这一项解决办法:手动安装驱动,我在这里选择了一个通用设备,步骤如下: 在HM1S上右键-->更新驱动程序软件-->浏览计算机以查找驱动软件...原创 2018-06-03 21:26:18 · 13400 阅读 · 0 评论 -
错误:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error:
在以下目录下找到文件打开该文件 在后面添加一行代码: android.enableAapt2=false 点击右上角 sync now问题解决原创 2018-10-05 18:43:05 · 531 阅读 · 0 评论 -
超图 移动端 imobile 三维快速入门
IMobile for Android +IServer 在线服务三维服务快速入门本文将使用超图提供的组件进行移动端三维场景的基础入门,数据为通过Iserver发布的三维服务,因此本文分为两部分:通过IServer发布三维服务 使用IMobile开发组件 打开场景发布三维服务:*博主使用的数据非超图示例的数据,许可到期了,没办法截不了图在超图桌面端打开包含所需数据集的数据源,并...原创 2018-10-20 00:39:13 · 1919 阅读 · 0 评论 -
android 开发遇到的奇难杂症
Gradle 构建报错Corrupted DataBlock 2944000 found in cache xxxxtaskArtifactsfileHashes.bin Corrupted DataBlock 1788408 found in cache xxxxxxxxxx\fileHashes.bin' Could not execute build using Gradle ...原创 2019-04-23 10:23:14 · 1602 阅读 · 0 评论 -
android studio 编译错误:AAPT 相关错误
遇到这种错误最蛋疼,因为build报错只会给你打印出工具的运行错误,具体哪一个文件出现错误他并不会告诉你,所以我们这个时候需要使用命令gradlew 去手动构建一次,构建完毕后查看输出列表 找到错误的文件ok具体操作:先build一次,查看错误具体出现在执行哪一个任务中,一般会在Run tasks下面报错;找到报错的任务,把名称复制上(包括冒号,如:模块名:任务名); 直接打开And...原创 2019-05-06 14:58:57 · 1566 阅读 · 0 评论 -
Android adb push失败后 手机出现空文件,无法删除,提示文件不存在、删除失败
使用ADB push 文件到手机里面时,由于传输过程中断或者文件名出现中文等种种原因,导致传输失败,但是手机中的临时文件仍然残留在sdcard中,无法删除;解决过程:(不想看的直接可以跳过)使用adb删除时,如果是中文名,通常文件名还带有其他不可识别的字符 ,无法输入到adb shell中,这个时候需这样使用adb命令删除:adb shell rm 文件名会发现无法删除、或者无法...原创 2019-07-05 15:39:50 · 3469 阅读 · 3 评论 -
Android 输入法优先弹出数字键盘或优先弹出字母键盘,但是不限制输入方式
遇到一个奇葩需求,要记录输入法上一次的输入状态,例如上一次用切换了数字输入,关闭后再打开输入框时要优先弹出数字键盘,但是不能限制只能输入数字; 经过一番测试,找到解决办法:首先是获取当前输入法的输入方式(办法比较死,没找到更好的办法)://etInputType为EditTextetInputType.addTextChangedListener(new TextWat...原创 2019-09-29 10:21:05 · 2232 阅读 · 1 评论 -
对Android中的finish()方法的简单使用
finish()官方解析:Call this when your activity is done and should be closed. The ActivityResult is propagated back to whoever launched you via onActivityResult().也就是说,当你打开的Activity已经执行完成并且需要被关闭的时候可以调用这个方法,...原创 2018-03-20 18:10:51 · 16550 阅读 · 6 评论