Android
文章平均质量分 61
android相关
_陈泡泡
原理先行,再实践验证
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
com.google.gson.internal.LinkedTreeMap cannot be cast to XXX
刚开始非常自信,debug没问题线上有问题,大概率就是混淆文件没有添加keep,于是本地添加对SDK中类的keep,本地打包release验证,不出意外还是崩溃。因为没办法修改SDK,最终用了一种tricky的解决方案,在获取到对象的时候做个类型判断,如果是。,仔细想想就是gson做反序列化时无法转化为我们的类型,于是检查gson的语法,以为是两层。导致,去google查询按照网上的代码修改序列化和反序列化的代码还是不行。另外写一个通用的Gson序列化和反序列化的代码。仔细看崩溃的原因,关键字是。原创 2023-09-19 21:21:16 · 2606 阅读 · 0 评论 -
webview第二次加载带#的url 调用loadUrl()不会刷新的坑
最近在做项目的时候发现Android和IOS的webview重新加载都会存在这种情况。看log是已经跳转到相应url并且也加到堆栈中,但就是没有刷新为了让它正常刷新我做了以下尝试原创 2022-02-12 09:55:06 · 6793 阅读 · 1 评论 -
Android arm64打包支持
1、如果是在小米、OPPO、VIVO、腾讯应用宝和百度手机助手五大应用商店上架的App,无论是新上架/升级的应用都需要在2021年12月底前上传包含64位包体的APK包,不再接受仅有32位版本的应用。2、而在华为应用市场新上架/升级的应用,可在2022年1月完成上传包含 64 位版本的APK包。首先要检查你的项目中是否都包含支持64位的so库,可以在app的build.gradle中添加如下代码,最后会输出不包含arm64位的so库tasks.whenTaskAdded { task -&.原创 2022-01-12 10:11:02 · 10163 阅读 · 0 评论 -
gradle执行cmd脚本
问问原创 2021-12-11 11:16:16 · 5849 阅读 · 0 评论 -
Android TextView循环滚动弹幕效果
最近做需求要写一个滚动弹幕的特效,要求是一直循环滚动,并且从左边出去部分的要从右边进入。1.首先想到的是用Android TextView自带的跑马灯效果,设置一下android:ellipsize="marquee" ,但是发现这种方式局限性很强,只有文字的长度超过了TextView的长度才会滚动,并且只有全部滚动完成才会开启下一次的滚动。2.参照GitHub - dreamgyf/MarqueeTextView: 走马灯式横向滚动的TextView(无论内容是否超过一行都会滚动)原理是创建一个原创 2021-11-04 17:11:35 · 2955 阅读 · 0 评论 -
Android以aar形式集成Flutter module
由于公司项目是内网开发,故本文的集成形式是以本地打aar包直接引入到现有的Android项目中,这种方式其他开发人员不需要搭建Flutter的环境也可以集成开发。我的flutter版本是2.0.3????一、创建Flutter module首先要在Android Studio中安装Flutter和Dart的plugin,接着我们选择File -> New -> New Flutter Project -> Flutter Module初始化创建的Module是一个可原创 2021-06-26 15:32:37 · 788 阅读 · 0 评论 -
ConstraintLayout中只显示一个TextView溢出显示问题
TextView文字太多导致聊天气泡显示不完全由于我的view是单独在一行展示,所以只能进行左or右约束,我进行右边约束之后给了margin_right导致view溢出显示区域(ConstraintLayout有一个20dp的paddingLeft),问题图片如下所示:箭头指向的地方就是溢出被裁掉的部分<TextView android:layout_width="wrap_content" android:layout_height="wrap_con原创 2021-04-22 19:55:43 · 811 阅读 · 0 评论 -
RecyclerView根据type加载不同的布局
最近项目中使用的多种样式的布局是通过RecyclerView.addHeadView()来实现的,一个RecyclerView中嵌套了多个RecyclerView,导致代码很冗余很丑陋,而且性能也不好,就考虑重构,在这先写个demo原创 2020-12-13 23:17:26 · 839 阅读 · 0 评论 -
Android实现AES加密
public class AESUtils { private static final String TAG = AESUtils.class.getSimpleName(); /** * 采用AES加密算法 */ private static final String KEY_ALGORITHM = "AES"; /** * 字符编码(用哪个都可以,要注意new String()默认使用UTF-8编码 getBytes()默认使用IS.原创 2020-10-14 20:36:41 · 7294 阅读 · 1 评论 -
Android各个版本对应的SDK
因为经常忘记各个SDK对应的Android版本号,所以在这里记录一下目前市面上大多数的APP中 minSDKVersion = 19 Google developers 上目前最小的版本号也是19平台版本 SDK版本 版本名称 11.0 30 Android R 10.0 29 Android Q 9.0 28 Pie (Android P) 8.1 27 Oreo(Android O)(奥利奥) 8.0...原创 2020-08-22 11:08:37 · 2145 阅读 · 0 评论 -
Handler解析
Handler是Android的消息传递机制上层(应用层)的实现,通过它可以把一个任务切换到Handler所在的线程中执行,只不过我们经常使用Hnadler来更新UI。首先介绍一下消息机制中包括的四个要素 Message(消息):需要被传递的消息对象,其中包含了消息ID,消息相应方以及回调方法等,由MessageQueue统一列队,最终由Handler处理。 ...原创 2020-03-15 18:23:21 · 721 阅读 · 0 评论 -
关于callback回调
callback回调是java里所有的,在Android中应用的地方非常多。举一个简单的例子,你妈妈去做饭,你对你妈妈说饭做好了叫我吃饭(注册监听),然后妈妈做好饭叫你(调用方法),你听到后去吃饭(执行回调方法),这个过程其实就是一次回调事件。public class Mother { private StateChangeCallback mStateChangeCallb...原创 2020-02-20 18:01:05 · 459 阅读 · 0 评论 -
Android的Listener监听事件分析
Android中的回调一直是我难以理解的一部分,总是很容易绕进去,但是细细想一下其实这些方法或者称之为函数都是在一个线程乃至一个进程中执行,肯定会存在先后的顺序,下面就先分析一下Listener,以后再分析一下Callback的回调。下面的demo是我自定义的一个listener事件,其实他们的写法千篇一律,只要自己写一遍理解了以后就很容易了public class CustomV...原创 2020-01-18 22:26:35 · 1877 阅读 · 0 评论 -
网易云音乐等三方app如何在锁屏显示
这里我本来准备反编译一下网易云音乐,但是发现github上有一个仿照网易云音乐的开源项目,参考自 https://github.com/aa112901/remusic,其他的应用在锁屏上显示的原理也都一样,不过需要在手机中为应用开启 锁屏显示 这一权限首先我们要明白所有显示在手机上界面都是由一层一层的Window构成(Activity是一个Window,锁屏也是一个Window,具体...原创 2019-12-23 20:55:45 · 2665 阅读 · 0 评论 -
我的Android经历
以下就是我的个人心血来潮写的一堆自我总结的废话,刚入坑Android的小白可以看下,大佬直接关闭即可今天突然感觉想写点东西给自己,也想写给很菜但是想要入坑Android的朋友们,希望你们看过会有所收获或感触吧。先给大家说说我把,笔者软件工程专业本科出身,大一大二纯混和玩(在学生组织有任职,后悔当时没有谈恋爱),大二下学期选学的java方向(算是有点java基础,不过现在也还给老师了)...原创 2019-06-15 09:15:12 · 235 阅读 · 0 评论 -
Android:layout_width和Android:width的区别
前言:今天看属性动画时发现当我们对一个Button按钮做动画时是没有效果的,代码如下:private void performAnimate(){ ObjectAnimator.ofInt(mButton,"width",500).setDuration(5000).start();}@Overridepublic void onClick(View v){ if...原创 2019-08-04 15:21:39 · 15550 阅读 · 0 评论 -
AS报错:Failed to open zip file. 解决办法
今天帮别人看一个项目,兴致勃勃的打开,AS界面下突然就报了BUG如下:然后我打开build.gradle文件看到gradle版本号为3.0.1com.android.tools.build:gradle:3.0.1我以为是没有这个版本的gradle包,于是去网上下载了一个,但是还是不行于是直接百度,找到了解决方法,在这里记录一下方案一:如果自己以前的项目可以打开,直接把...原创 2019-08-13 18:18:27 · 14354 阅读 · 0 评论 -
使用BottomNavigationView实现底部导航栏
笔者的SDK版本为27,此文章适合27及以下,如果是28及以上版本请看使用谷歌官方BottomNavigationView实现非md风格的底部状态栏更加简单首先我们需要了解Bottom Navigation是5.0(API level 21)新出的一种符合Material Design规范的导航栏规范。在Android Studio中我们可以直接选择新建 BottomNaviga...原创 2019-05-12 18:55:51 · 1900 阅读 · 0 评论
分享