自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (3)
  • 收藏
  • 关注

原创 基础知识篇(三)Activity启动模式

安卓是采用任务栈来管理Activity的,默认情况下多次启动同一个Activity系统会重复创建这个Activity的实例,并把每个实例依次入栈。为了避免Activity实例的重复创建、应付特殊的场景、安卓为Activity设计了启动模式。

2024-01-12 17:03:57 413

原创 基础知识篇(二)Activity之生命周期变化

Activity作为四大组件之一,App切换、新的Activity启动与关闭以及配置发生变化等等都会引起Activity生命周期发生变化。

2024-01-12 15:28:57 410

原创 基础知识篇(一)Acticity生命周期

Activity 类是 Android 应用的关键组件,而 activity 的启动和组合方式是平台应用模型的基本组成部分。与使用 main() 方法启动应用的编程范式不同,Android 系统会通过调用与其生命周期特定阶段对应的特定回调方法,在 Activity 实例中启动代码。

2024-01-12 15:08:56 404

原创 RecyclerView嵌套WebView导致itemView自动滑动

分析解决方法android:descendantFocusability 详解做一帖子详情页,是某种类型帖子后,需使用WebView来显示帖子内容.但是滑动到帖子底部查看评论是自动滑动到内容itemWebView了.

2023-08-17 10:12:17 296

原创 android adb 抓取日志

1.使用adb logcat -c清除缓存2.运行adb logcat -v time >./log.log即可开始抓取日志。">"后面接文件存储位置。“control+c”结束抓取。

2022-07-06 11:37:16 769 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 2675

原创 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 321

原创 Android Q 分区存储适配-常见问题

Download目录下的自己app创建的文件,如果app被卸载重装后还能直接访问吗答:不可以,将等同其他应用产生的文件。媒体类的文件需要申请动态存储权限,非媒体类的文件则需要使用SAF用户卸载安装后再次访问自己原有的公共目录下的下载数据相当于其他应用访问的设定否合理?初衷是安全上的考虑,应用卸载后,如果有仿冒的同包名应用安装,不希望它能够后台能够无权限获取原来应用的数据。问题...

2020-08-04 18:28:03 210

原创 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 606

原创 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 434

原创 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 1108

原创 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 201

原创 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 409

原创 大话单例模式

标题概念单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式基本实现懒汉模式这是最基本的单例模式,实现了懒加载,但是多线程不...

2019-10-26 11:35:52 97

原创 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 1357

原创 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 886

原创 工作中遇到的问题

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 86

原创 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 337

转载 java 基本类型和包装类

基本类型和包装类基本类型包装类所占字节intInteger4字节longLong8字节floatFloat4字节doubleDouble8字节byteByte1字节shortShort2字节booleanBoolean1字节chrCharacter2字节至于为什么 Java 中 char 无论中...

2019-06-04 16:39:10 164

原创 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 276

转载 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 700

原创 transient 关键字

transient 中文意思是短暂的,临时的。Java中transient关键字的作用,简单地说,就是让某些被修饰的成员属性变量不被序列化,

2019-04-24 16:20:37 120

原创 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 214 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 12731 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 218

原创 ListView单条item刷新

ListView单条item刷新在使用listView显示很多数据时当有一条数据发送改变需要刷新某条数据时,一般会调用Adapter.notifyDataSetChanged()来进行刷新。 但会造成体验不好,尤其是下载列表会高频率调动Adapter.notifyDataSetChanged()会造成UI绘制资源的浪费进而影响性能。 代码模块Activitypublic class...

2018-07-12 23:15:30 222

原创 面试复习一 Activity启动模式(2)

Activity启动模式1、设置启动模式一般地,我们可以直接在AndroidManifest.xml 标签的一个属性中设置launchMode,如下:&lt;activity android:name=".ExampleActivity" android:label="singleTask launchMode"/&gt;2、四种动模式认识standard:标准...

2018-04-17 18:09:33 106

原创 面试复习一 Activity生命周期(1)

一、初识ActivityActivity是Android的四大组件之一。是用户操作的可视化界面;它为用户提供了一个完成操作指令的窗口。当我们创建完毕Activity之后,需要调用setContentView()方法来完成界面的显示;以此来为用户提供交互的入口。在Android App 中只要能看见的几乎都要依托于Activity,所以Activity是在开发中使用最频繁的一种组件。...

2018-04-17 17:26:36 196

原创 Android 8.0 app内应用更新失败

Android 8.0 app内应用更新最近公司app更新上线测试,发现在android8.0 更新失败,已提示更新点击升级是直接页面闪一下导致更新失败。经排查,更新包已下载完成,通过Intent,调用apk文件路径,进行自动安装的,但是8.0 下载完文件,并没有调用成功。 已知原因如下: 在 Android 8.0 中,安装未知应用权限提高了安装未知来源应用时的安全性。此权限与其他运...

2018-03-28 10:50:54 908

原创 Android Studio离线安装gradle(亲测可用)

最近也是在试着熟悉使用android studio,毕竟是以后安卓的主流开发平台,早晚都是要用的。但是面对谷歌这个版本帝,每次AS每次更新之后又是要更新gradle,总是因为我们伟大的天朝的墙实在是太厚,提示各种错误。研究了很久发现了这个方法,希望可以帮助遇到同样问题的朋友(当然有VPN的同学就当我没说)!o(∩_∩)o 第一步:下载需要的gradle,根据提示的错误来,我上次提示的是不能下载gr

2017-11-07 15:35:35 1635

原创 Android 7.0 FileUriExposedException 解决

从Android 7.0开始,一个应用提供自身文件给其它应用使用时,如果给出一个file://格式的URI的话,应用会抛出FileUriExposedException。这是由于谷歌认为目标app可能不具有文件权限,会造成潜在的问题。所以让这一行为快速失败。详见这里。这里讨论两种解决方式。1 FileProvider方式 这是谷歌官方推荐的解决方案https://github.com/honjane

2017-05-18 18:34:18 262

原创 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 610

原创 could not get batchedbridge make sure

could not get batchedbridge make sure本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ct

2017-04-18 11:57:11 451

原创 Git多个账户冲突问题解决

一台设备可能存在多个git账号,如何管理呢? 下面那两个git账号举例说明第一个账号 [email protected](github.com ) 第一个账号 [email protected](git.oschina.net)步骤一、 设置Git的user name和email: $ git config --global user.name "xuhaiyan" $ g

2016-11-09 18:33:46 2274

原创 git 公钥生成

Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。 github的SSH配置如下: 一 、 设置Git的user name和email:$ git config --global user.name "xuhaiyan"$ git config --global user.email "[email protected]"二、生成SSH密

2016-11-09 18:02:46 269

原创 android 底部导航栏

欢迎使用Markdown编辑器写博客这几天Android开发遇到布局问题,布局被手机底部的导航栏(虚拟键)挡住啦一部分。 在网上查啦一些资料,确定这几种方法能够实现。布局中也要添加android:fitsSystemWindows="true"1、在Activity onCreate方法中添加 :////透明导航栏,就是下面三个虚拟按钮getWindow().addFlags(WindowMan

2016-10-12 15:57:09 579

原创 java算法 -- zip解压,压缩

文件压缩解压算法

2016-05-11 15:18:39 529

转载 android 横竖屏切换属性和播放视频全屏切换

转 http://blog.csdn.net/u013895206/article/details/44035091最近在做平板项目,需要用到横屏切换,现在把属性贴出来方便以后查看。通常我们的应用只会设计成横屏或者竖屏,锁定横屏或竖屏的方法是在manifest.xml文件中设定属性android:screenOrientation为”landscape”或”portrait”:<activity

2016-03-30 18:32:15 1245

原创 录制视频的大Bug (IOS 不能播放)

录制视频 部分代码示例: mMediaRecorder = new MediaRecorder(); mMediaRecorder.reset(); if (mCamera != null) mMediaRecorder.setCamera(mCamera); mMediaRecorder.setOnErrorListener

2016-01-13 14:23:53 1247

转载 Java开发中的23种设计模式详解(转)

设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件

2015-12-18 10:47:52 296

MAC版 easyConnect_7_6_7_4

下载不需要积分

2022-07-13

rt1_1.8.0_51.zip

java、android加密算法 des 使用的jar

2015-08-07

android系统广播大全 Intent跳转界面

android系统广播大全 Intent跳转界面

2014-12-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除