android
liulq2018
这个作者很懒,什么都没留下…
展开
-
RecyclerView嵌套WebView导致itemView自动滑动
分析解决方法android:descendantFocusability 详解做一帖子详情页,是某种类型帖子后,需使用WebView来显示帖子内容.但是滑动到帖子底部查看评论是自动滑动到内容itemWebView了.原创 2023-08-17 10:12:17 · 440 阅读 · 0 评论 -
android adb 抓取日志
1.使用adb logcat -c清除缓存2.运行adb logcat -v time >./log.log即可开始抓取日志。">"后面接文件存储位置。“control+c”结束抓取。原创 2022-07-06 11:37:16 · 811 阅读 · 1 评论 -
微信开源工具AndResGuard
**1、简介**AndResGuard是一个帮助你缩小APK大小的工具,他的原理类似JavaProguard,但是只针对资源。他会将原本冗长的资源路径变短,例如将res/drawable/wechat变为r/d/a。AndResGuard不涉及编译过程,只需输入一个apk(无论签名与否,debug版,release版均可,在处理过程中会直接将原签名删除),可得到一个实现资源混淆后的apk(若在配置文件中输入签名信息,可自动重签名并对齐,得到可直接发布的apk)以及对应资源ID的mapping文原创 2022-04-20 18:11:52 · 2908 阅读 · 0 评论 -
Android Q 分区存储适配-文件上传
文件上传以常用的网络框架okhttp为例1、见文件复制到应用专属目录下,可继续使用File路径进行上传;2、将uri转换为byte[],如下RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), uriToByteArray(context, uri)); public static byte[] uriToByteArray(Context context, Uri uri)原创 2021-01-11 17:50:56 · 342 阅读 · 0 评论 -
Android Q 分区存储适配-常见问题
Download目录下的自己app创建的文件,如果app被卸载重装后还能直接访问吗答:不可以,将等同其他应用产生的文件。媒体类的文件需要申请动态存储权限,非媒体类的文件则需要使用SAF用户卸载安装后再次访问自己原有的公共目录下的下载数据相当于其他应用访问的设定否合理?初衷是安全上的考虑,应用卸载后,如果有仿冒的同包名应用安装,不希望它能够后台能够无权限获取原来应用的数据。问题...原创 2020-08-04 18:28:03 · 238 阅读 · 0 评论 -
Android Q 分区存储适配-文件创建与保存
私有目录可以使用File API 进行保存与编辑删除等共享目录使用MediaStore创建文件 public Uri createFile(Context context,String fileName) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { return null; } ContentResolver resolver =context.getCo原创 2020-08-04 18:18:52 · 642 阅读 · 0 评论 -
Android Q 适配--分区存储适配
前言为了让用户更好地管理自己的文件并减少混乱,以 Android 10(API 级别 29)及更高版本为目标平台的应用在默认情况下被赋予了对外部存储设备的分区访问权限(即分区存储(Scoped Storage))。。官方翻译称为分区储存,也有称为沙盒模式。Android Q 已发布1年多了,现在才开始做**分区存储(Scoped Storage)**适配,有点惭愧啊。了解权限Android Q仍然使用READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE作为存储相原创 2020-08-04 17:26:30 · 491 阅读 · 0 评论 -
GridLayoutManager.SpanSizeLookup 白话文描述使用
今天就讲它的两个方法getSpanIndex和getSpanSizegetSpanIndex(position: Int, spanCount: Int)abstract Int getSpanSize(position: Int)解释下下getSpanSize 是返回该item所占据份数getSpanIndex 是返回该item占据份数的起始索引举例说明下 看下嘛表格该表格布局最大列数是 6 ,item0、item1、item2,每项占据2份数item3占据4份数,item4占据原创 2020-05-16 16:06:41 · 1255 阅读 · 0 评论 -
Android性能优化-apk瘦身
背景随着业务的发展app体积越来越大,由刚开始的几M到后来的几十M。APP越来越大会导致用户使用成本会上升,进而导致用户的流失等等。。。。压缩APP,减小app体积刻不容缓!!!随着Android studio 3.0 发布,也随之提供了 Analyser 来分析apkapk结构分析apk有lib、classes.dex、assets、resources.arsc、res等文件组成...原创 2020-04-24 16:25:41 · 236 阅读 · 0 评论 -
Android 8.0 Activity启动崩溃异常:"Only fullscreen opaque activities can request orientation"
今天测试突然提出 打开某某页面崩溃,怎么可能,我的代码怎么会有这么到的bug呢,抓紧找出信息如下崩溃机型:华为荣耀手机系统版本:Android8.0日志如下:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cloudy.linglingbang.test/com.cloudy.lingl...原创 2019-11-21 15:50:31 · 532 阅读 · 0 评论 -
大话单例模式
标题概念单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式基本实现懒汉模式这是最基本的单例模式,实现了懒加载,但是多线程不...原创 2019-10-26 11:35:52 · 126 阅读 · 0 评论 -
Android api对应版本号
平台版本API 级别发布时间Android 9.0282018年08月06日Android 8.1272017年12月05日Android 8.0262017年08月21日Android 7.1252016年10月04日Android 7.0242016年08月22日Android 6.0232015年10月05日A...原创 2019-04-23 17:15:04 · 563 阅读 · 1 评论 -
java enum 枚举比较 == or equals ??
问题public static enum MessageDirection { SEND(1), RECEIVE(2);}在使用枚举比较时,使用了equals来比较两个枚举值if (data.getMessageDirection().equals(Message.MessageDirection.SEND)) { ...}结果空指针了java.lang....原创 2019-04-23 10:38:41 · 13398 阅读 · 1 评论 -
Parcelable和 Serializable 序列化时间测试
Parcelable和 Serializable 序列化时间测试测试硬件Android虚拟机androId9.0CPU/ABI: Google Play Intel Atom (x86)测试代码public class TextA implements Parcelable {private String message;private long time;public Text...原创 2019-04-22 19:13:04 · 237 阅读 · 0 评论 -
Android Carsh:android.view.WindowManager$BadTokenException
分析:当打开Dialog或者PopupWindow时,所依附的View不存在或是token令牌不存在,简单来说就是所在的窗体(Activity)已关闭出现时机:在Activity 中开定时打开Dialog,然后关闭Activity;解决方法:在打开Dialog或者PopupWindow,首先检测Activity是否已关闭/*** 检查Activity是否已关闭*/public s...原创 2019-07-04 09:45:20 · 954 阅读 · 0 评论 -
ListView单条item刷新
ListView单条item刷新在使用listView显示很多数据时当有一条数据发送改变需要刷新某条数据时,一般会调用Adapter.notifyDataSetChanged()来进行刷新。 但会造成体验不好,尤其是下载列表会高频率调动Adapter.notifyDataSetChanged()会造成UI绘制资源的浪费进而影响性能。 代码模块Activitypublic class...原创 2018-07-12 23:15:30 · 237 阅读 · 0 评论 -
Toast WindowManager$BadTokenException
Toast 作为 Android 常用的控件之一,突然在友盟统计上发现Toast报错了,那就需要麻溜的解决了。复现 Toast.makeText(getContext(), "我的Toast", Toast.LENGTH_SHORT).show(); try { Thread.sleep(5_000); } catch (Interr...转载 2019-04-28 16:31:34 · 736 阅读 · 0 评论 -
Android Studio 调试技巧
设置断点开启调试模式快捷键:mac: control+D或者重点来了。。。重点来了条件断点int value = 0;for(int i=0;i<100;i++){ value+=i;}Log.i("tag","value = " + value);若i 的值为50,我们查看下value的值。 如何做呢?我们以上代码不做修改。常规方法:一步步循环,知道i值为...原创 2019-04-29 11:44:00 · 328 阅读 · 0 评论 -
java 基本类型和包装类
基本类型和包装类基本类型包装类所占字节intInteger4字节longLong8字节floatFloat4字节doubleDouble8字节byteByte1字节shortShort2字节booleanBoolean1字节chrCharacter2字节至于为什么 Java 中 char 无论中...转载 2019-06-04 16:39:10 · 175 阅读 · 0 评论 -
java 包装类和基本类使用区别-注意点
包装类和基本类介绍举个栗子class Student{ private int age; private String name; private Long birthday; private long createTime;}可以看到成员age和createTime使用的事基本类型,而birthday使用的事包装类。有什么区别呢?1、默认值?2、占用空间?3、还是其他不...原创 2019-06-04 17:12:28 · 342 阅读 · 0 评论 -
工作中遇到的问题
1、包装类和基本类型介绍https://blog.csdn.net/mylike_45/article/details/90772777总结https://blog.csdn.net/mylike_45/article/details/907788812、equals 的使用https://blog.csdn.net/mylike_45/article/details/89467369...原创 2019-07-03 20:03:31 · 111 阅读 · 0 评论 -
WindowManager:android.view.WindowLeaked
窗体泄露来源:按字面了解,Window Leaked大概就是说一个窗体泄漏了,也就是我们常说的内存泄漏,为什么窗体会泄漏呢?解决办法:关闭(finish)某个Activity前,要确保附属在上面的Dialog或PopupWindow已经关闭(dismiss)了。错误日志 :2019-06-05 15:45:07.008 7915-7915/com.cloudy.jun.test E/W...原创 2019-09-18 18:47:00 · 1496 阅读 · 0 评论 -
【Android2.2及以上】如何允许你的应用移动到SD卡?
转载于 http://blog.csdn.net/feng88724/article/details/6946670我们在使用Android手机时发现,有的程序允许被移动到SD卡,而有的不行?这是为什么呢?因为在Android 2.2版之后, Android应用才被允许移动到SD卡中。而在此之前开发的应用,全部没有这个功能。那么究竟如何允许你的应用转载 2014-12-05 17:27:38 · 510 阅读 · 0 评论 -
面试复习一 Activity生命周期(1)
一、初识ActivityActivity是Android的四大组件之一。是用户操作的可视化界面;它为用户提供了一个完成操作指令的窗口。当我们创建完毕Activity之后,需要调用setContentView()方法来完成界面的显示;以此来为用户提供交互的入口。在Android App 中只要能看见的几乎都要依托于Activity,所以Activity是在开发中使用最频繁的一种组件。...原创 2018-04-17 17:26:36 · 209 阅读 · 0 评论 -
Android 8.0 app内应用更新失败
Android 8.0 app内应用更新最近公司app更新上线测试,发现在android8.0 更新失败,已提示更新点击升级是直接页面闪一下导致更新失败。经排查,更新包已下载完成,通过Intent,调用apk文件路径,进行自动安装的,但是8.0 下载完文件,并没有调用成功。 已知原因如下: 在 Android 8.0 中,安装未知应用权限提高了安装未知来源应用时的安全性。此权限与其他运...原创 2018-03-28 10:50:54 · 958 阅读 · 0 评论 -
Android Studio离线安装gradle(亲测可用)
最近也是在试着熟悉使用android studio,毕竟是以后安卓的主流开发平台,早晚都是要用的。但是面对谷歌这个版本帝,每次AS每次更新之后又是要更新gradle,总是因为我们伟大的天朝的墙实在是太厚,提示各种错误。研究了很久发现了这个方法,希望可以帮助遇到同样问题的朋友(当然有VPN的同学就当我没说)!o(∩_∩)o 第一步:下载需要的gradle,根据提示的错误来,我上次提示的是不能下载gr原创 2017-11-07 15:35:35 · 1652 阅读 · 0 评论 -
android 倒计时 CountDownTimer
在平时我们编程的时候,经常会用到倒计时这个功能,很多人不知道Android已经帮封装好了一个类,往往都自己写。现在发现了这个类,大家共享一下:功能:30秒倒计时 每次间隔1秒参数:mc.start();方法开始mc.cancel();方法结束CountDownTimer mc = new CountDownTi原创 2015-04-06 15:24:53 · 352 阅读 · 0 评论 -
android蓝牙传输文件时的文件格式限制及其解决方法
出于安全考虑,android蓝牙在传输文件时对文件格式有限制,默认情况下,并不是所有文件都能够传输和共享。在packages/apps/Bluetooth下面的AndroidManifest.xml中 android:process="@string/process" android:theme="@android:s转载 2014-12-07 15:21:21 · 1062 阅读 · 0 评论 -
调用系统蓝牙传送文件
调用系统蓝牙传送文件,用代码实现。。。。。1. 先检查蓝牙是否能用:BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();if (mBluetoothAdapter == null) {// 表明此手机不支持蓝牙Toast.makeText(mContext, "蓝牙无法正常使原创 2014-12-07 15:04:35 · 767 阅读 · 0 评论 -
浅谈 Intent、PendingIntent
Intent和PendingIntent 翻译过来都有意图的意思,只是PendingIntent 含有意图不明,表示即将发生或来临的事情。 。 Intent 是及时启动,intent 随所在的activity 消失而消失。 PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadcast ,getService来得到pendin原创 2014-12-05 16:07:36 · 504 阅读 · 0 评论 -
隐式Intent 用法集合
1. //显示网页:2. Uri uri = Uri.parse("http://www.google.com");3. Intent it = new Intent(Intent.ACTION_VIEW,uri);4. startActivity(it);5. 6. //显示地图:7. Uri uri = Uri.parse("geo:38.899533,-77.0364转载 2014-12-05 17:09:40 · 625 阅读 · 0 评论 -
保持屏幕唤醒
一、 相关概念1. 出于节电的需要,一般应用在用户一段时间无操作的情况下屏幕变暗,然后进后休眠状态2. 用户只能在”设置->声音和显示”中设置所有应用默认的屏幕亮度和进行待机的时间3. 电源管理的实现分内核应用两部分,通过下面介绍的接口,我们可以设置应用程序的电源管理,以控制与其休眠相关的状态(是否需要进入休眠,调整cpu频率,键转载 2014-12-03 14:34:26 · 434 阅读 · 0 评论 -
android 耳机线控的实现方法
android 耳机线控的实现方法博客分类: 转博文keycodeonkeydownkeyevent 耳机线控的功能 耳机线控是一种很好用,并且能提升用户体验的功能。可以用来实现一些常用和基本的功能。比如:实现音乐播放的控制,接听电话,音量控制等。下面写一下耳机线控的几种实现方式。 耳机线控的实现 耳机线控实现方式主要有两种,(注:可转载 2014-12-16 17:56:34 · 529 阅读 · 0 评论 -
android 音频均衡器,可通过拖动调节音频EQ
2.3之后,Google 为Mediaplayer 类添加了EQ支持,如果你需要使用这个EQ功能,有两点需要注意,分别为如下:在配置文件中设置最小的SDK版本为9添加权限android.permission.RECORD_AUDIO 即可使用,具体的使用方法,下文会介绍为了使应用程序能够支持波段变化,我们需要重新定义一个VIEW对象,在onDraw 方法画频谱,代码如下:转载 2014-11-20 19:30:20 · 4065 阅读 · 0 评论 -
android listView 分批加载
在QQ、大众点评等等软件上原创 2014-09-26 09:26:02 · 484 阅读 · 0 评论 -
android:windowSoftInputMode属性应用
android:windowSoftInputMode属性应用android:windowSoftInputMode属性使用 在AndroidManifest.xml文件中的android:windowSoftInputMode属性使用 The AndroidManifest.xml File "stateUnchanged", "stateHidden",原创 2015-04-19 15:04:53 · 316 阅读 · 0 评论 -
Android RSA加密解密
转载请注明出处: http://blog.csdn.net/bbld_/article/details/38777491概述RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困 难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。公钥是可发布的供任何人使用,私钥则为自转载 2015-08-07 15:46:04 · 426 阅读 · 0 评论 -
android 在加代码混淆时 ,搜集到的错误(一)
在混淆包含SlidingMenu, gson 的代码时,可能会报以下错误:can't find superclass or interface com.google.android.maps.MapActivity...如果还使用到了gson来序列化或者反序列化json,程序还会抛出NullPointerException,这是因为代码被混淆后,成员变量以及getter、s原创 2015-08-10 14:23:31 · 284 阅读 · 0 评论 -
Android 7.0 FileUriExposedException 解决
从Android 7.0开始,一个应用提供自身文件给其它应用使用时,如果给出一个file://格式的URI的话,应用会抛出FileUriExposedException。这是由于谷歌认为目标app可能不具有文件权限,会造成潜在的问题。所以让这一行为快速失败。详见这里。这里讨论两种解决方式。1 FileProvider方式 这是谷歌官方推荐的解决方案https://github.com/honjane原创 2017-05-18 18:34:18 · 273 阅读 · 0 评论 -
Android 7.0 安装Apk时报错FileUriExposedException 解决
安装Apk时报错FileUriExposedException 1、AndroidManifest.xml写入<provider android:name="android.support.v4.content.FileProvider" android:authorities="你的包名.fileprovider" android原创 2017-05-18 18:26:33 · 640 阅读 · 0 评论