自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 收藏
  • 关注

转载 集合迭代时对集合进行修改抛ConcurrentModificationException原因的深究以及解决方案

大家应该都知道, 在java中, 在对一些集合迭代的过程中对集合进行一些修改的操作, 比如说add,remove之类的操作, 搞不好就会抛ConcurrentModificationException, 这一点在API文档上也有说的! 在迭代时只可以用迭代器进行删除!但是文档上只是说了删除, 其他操作也会引起ConcurrentModificationException, 这是为何呢.? 下面就跟着我一起探索源代码吧! 就以ArrayList为例!当我在迭代ArrayList时, 首先获取...

2022-03-01 15:02:50 242

转载 Java ConcurrentModificationException 异常分析与解决方案

一、单线程1. 异常情况举例只要抛出出现异常,可以肯定的是代码一定有错误的地方。先来看看都有哪些情况会出现ConcurrentModificationException异常,下面以ArrayList remove 操作进行举例:使用的数据集合: List myList = new ArrayList(); myList.add( "1"); myList.add( "2"); myList.a...

2022-03-01 15:01:46 592

转载 2021-03-16

git cherry-pick的使用教程对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么就采用合并(git merge)。另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。一、基本用法git cherry-pick命令的作用,就是将指定的提交(commit)应用于其他分支。 $ git cherry-pick <commitHash>..

2021-03-16 14:15:08 214

转载 Ubuntu adb 报错:no permissions (user in plugdev group; are your udev rules wrong?);

1. 安装adb,查看自己的安卓设备sudo apt-get install android-tools-adbadb start-serverlsusb输出信息:Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hubBus 001 Device 005: ID 8087:0a2b Intel Corp.Bus 001 Device 003: ID 18f8:0f99 android xxxBus 001 Dev..

2020-08-28 09:56:53 3286 1

原创 修改菜单项字体的颜色和大小

默认菜单:<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.DayNight"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item na...

2020-08-21 15:17:24 538

原创 一、 OpenGL的学习规划

OpenGL的学习规划OpenGL基础知识的掌握相关网站:https://learnopengl-cn.readthedocs.io/zh/latest/ (LearnOpenGL CN)或者 https://learnopengl-cn.github.io/ (LearnOpenGL CN)补充性的学习网站:https://learnopengl.com/Introduction (LearnOpenGL-Instruction)http://www.open...

2020-08-19 10:30:09 610

转载 世界语言对照表

世界语言对照表注:部分小语种存在编译器不能兼容显示语言码_国家码 -> 语言选择里的显示语言 -> 英文下的语言(国家) -> 简体中文下的语言(国家)af -> Afrikaans -> Afrikaans -> 南非荷兰文af_NA -> Afrikaans -> Afrikaans (Namibia) -> 南非荷兰文 (纳米比亚)af_ZA -> Afrikaans -> Afrikaans (South Africa..

2020-08-19 10:26:27 1840

原创 Toolbar 设置两边的间距,以及将菜单项设置为圆角

Toolbar 设置两边的间距<style name="UnableSplitTouchTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> <item name="colorPrimary">@color/colorMainBackground</item> <item name="android:windowEnableSplitTouch">false</it...

2020-08-19 10:24:43 819

转载 Android Toast封装点击多次只显示一次,并解决连续点击后,不在显示的问题

首先,Toast封装:public class ToastUtils { private static Toast toast; private static Application sContext; public static void init(Application application) { sContext = application; } public static void showShort(CharSequence sequ...

2020-07-15 10:33:48 1584

原创 处理Android的阿拉伯语适配的问题。

String albumName = mSearchAlbumNameList.get(position); if (TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) == View.LAYOUT_DIRECTION_LTR) { holder.txtAlbumName.setText(albumName); } else { ...

2020-06-03 11:56:11 784

转载 Android判断设备是手机还是平板

官方的例子/** * 判断是否平板设备 * @param context * @return true:平板,false:手机 */private boolean isTabletDevice(Context context) { return (context.getResources().getConfiguration().screenLayout & Con...

2020-03-23 09:10:22 998

转载 Android 应用支持RTL 阿语反转的UI适配处理看这一篇就够了

注意:应用程序支持RTL的布局需要在AndroidManifest.xml的<application>中,添加android:supportsRtl=true。该声明代表您的应用程序是否支持从右到左(RTL)布局。targetSdkVersion设置为17或更高,则系统将激活并使用各种RTL API,以便您的应用程序可以显示RTL布局。如果设置为false或者targetSdkVers...

2020-02-29 14:37:08 2247

转载 锁屏上显示Activity

本文原文地址:http://www.race604.com/activity-over-keyguard/在Android中,有些比较强的提醒,需要用户紧急处理的内容。需要唤醒屏幕,甚至在锁定屏幕的情况下,也要显示出来。例如,来电界面和闹钟提醒界面。这是怎样实现的呢?其实,实现起来非常简单。只要给Activity的Window添加如下属性即可:@Overrideprotected ...

2020-02-28 10:38:21 741

转载 Android 中东阿拉伯语适配,看这一篇够了

该文章已归纳在本人 GitHub 的 Blog 仓库,欢迎 star 或者 watch。同时欢迎访问我的博客地址 https://gojun.me/ 有更多干货。RTL 语言由来RTL 是 Right-to-left(从右向左) 的缩写。其意为人们书写阅读习惯是从右向左,朝左继续的,常见的 RTL 语言有阿拉伯语,希伯来语等。看一下对比:LTR RTL ...

2020-02-27 16:24:53 1755

原创 菜单的位置和overflow右边距的调整

ActionBar中OptionMenu弹出菜单的位置和overflow右边距的调整<style name="ActionBarTheme" parent="Theme.AppCompat.Light"> <item name="colorPrimary">@color/colorPrimary</item> <it...

2020-02-27 16:00:39 657

转载 透彻理解Java并发编程

Java并发编程是整个Java开发体系中最难以理解但也是最重要的知识点,也是各类开源分布式框架中各个并发组件实现的基础。本专栏从Java多线程基础开始,先以java固有并发原语介绍多线程设计中的常见模式,然后从J.U.C并发包入手,分五大模块,从整体到局部,分析JUC包中每个工具类,以及模块中的各个组件之间关系。注意:其中Java多线程基础系列的文章完全参考结城浩的《Java多线程设计模式》一书,...

2020-02-26 11:16:27 212

转载 CardView完全解析和使用

CardView 简介CardView继承自FrameLayout,可以让我们使用类似卡片布局来显示一致性效果的内容。同时卡片还可以包含圆角和阴影效果。CardView是一个Layout,同时在里边布局其他View控件。如果我们需要创建带有一个阴影效果的卡片,那么可以使用app:cardElevation属性。在API21(Android L)等级以上拥有属性elevation,意为Car...

2020-02-25 19:28:07 743

转载 深入理解JobScheduler与JobService的使用

JobScheduler和JobService是安卓在api 21中增加的接口,用于在某些指定条件下执行后台任务。JobSchedulerJobScheduler是用于计划基于应用进程的多种类型任务的api接口。对象获取方法:[Context.getSystemService(Context.JOB_SCHEDULER_SERVICE)] 使用JobInfo.Builder.JobI...

2020-01-22 10:40:21 1471

转载 Android开发——改变状态栏字体图标颜色(简单粗暴)

前言在实际的Android开发当中,由于国内很多Android厂商对系统的做法不一致。所以有部分手机的状态栏默认颜色是白色的,那么如果我们开发的应用是白色就会看不清楚状态栏的字体和图标颜色,影响我们应用的整体体验感。我之前遇到也很头疼,看了很多博客发现并没有我想要的效果,我结合网上的博客写出了一个属于我的方法(如有雷同,纯属巧合)。解决方法 /** * 界面设置状态栏字体颜...

2019-11-21 11:08:59 487

转载 Android 虚拟按键隐藏或显示之后共享元素动画异常解决方案

背景本篇算是共享元素的第三篇文章。主要还是因为第一篇才会衍生出来了第二篇和第三篇文章,后两篇均属于bug的分析和解决。1.Android 仿微信朋友圈图片拖拽返回2.Android 共享元素动画分析及背景空白的解决方案3.Android 虚拟按键隐藏或显示之后共享元素动画异常解决方案在部分可以隐藏或者显示虚拟按键的手机上,只要显示或者隐藏虚拟按键,再执行共享元素,就会异常。如图:...

2019-10-18 17:56:53 562

转载 Android Transition(Android过渡动画)

参考链接:http://www.jianshu.com/p/0af52be90ae6 http://www.jianshu.com/p/e497123652b5 在Android 4.4 Transition 就已经引入了,但在Android 5.0(API 21)之后,Transition 被更多的应用起来。相对于View Animation或Property Anim...

2019-10-18 17:50:00 1065

转载 Android Transition Animation 过渡动画解析

本文主要译自 lgvalle 的Material-Animations的 README.MD,文中的源码见Material-Animations。Android 4.4.2 中引入了 Transition 过渡动画,不过那时的 API 的功能比较简单,只能对整个 Activity 或 Fragment 做动画,Google 在 Android 5.0 的 Material Desig...

2019-10-18 17:43:15 908

转载 Android 共享元素动画分析及背景空白的解决方案

背景前段时间写了一篇Android 仿微信朋友圈图片拖拽返回,有朋友指出为什么在拖拽的时候,发现上一个页面点击的图片是空白的,可以看下效果图。出现问题的本能反应,先对比下微信朋友圈的效果,发现没问题。[手动黑人问号脸]后来无意中发现,当手机休眠唤醒之后,这个问题就没有了。那就说明在onResume中的部分代码对view做了处理。onResume分析既然发现onResum...

2019-10-18 17:21:15 1500

转载 你真的了解Fragment的生命周期吗?

Android Framwork开发人员中的传奇人物Dianne Hackborn在2010年将Fragment引入了Android,也就是在android3.0之后引入Fragment,他在提交信息中写道:“将单一的Activity拆分成多个独立的部件”的想法非常好。 然而,从今天Fragment的的实际使用效果来看,这一API的实现和演变并不理想。虽然在项目中我们经常使用Fr...

2019-10-18 17:13:32 160

转载 Fragment的getActivity方法返回null的多种解决方法

1:Fragment的getActivity方法返回null的原因:如果系统内存不足、或者切换横竖屏、或者app长时间在后台运行,Activity都可能会被系统回收,但是Fragment并不会随着Activity的回收而被回收,从而导致Fragment丢失对应的Activity。这里,假设我们继承于FragmentActivity的类为MainActivity,其中用到的Fragment为Fra...

2019-10-18 16:43:45 678

转载 Android 那些年,处理getActivity()为null的日子

Android 那些年,处理getActivity()为null的日子2016.08.10 17:18:40字数 617阅读 19273在日常开发中的时候,我们经常会使用ViewPager+Fragment进行视图滑动,在某些部分逻辑也许我们需要利用上下文Context(例如基本的Toast),但是由于Fragment只是衣服在Activity容器的一个试图,如果需要拿到当前的Act...

2019-10-11 14:32:58 93

转载 浅谈ANR如何分析解决ANR /转

手机中pull处理trace.txt进去 data/anr再pull一:什么是ANRANR:Application Not Responding,即应用无响应二:ANR的类型ANR一般有三种类型:1:KeyDispatchTimeout(5 seconds) --主要...

2019-09-20 16:35:50 515

转载 Traces文件分析ANR问题

Traces文件分析ANR问题我们在开发调试过程中遇到ANR问题大多是可以通过DDMS方法来分析问题原因的,但是所有的ANR问题不一定会在开发阶段出现,如果在测试或者发版之后出现了ANR问题,那么就需要通过traces文件来分析。根据之前的分析我们知道,traces文件位于/data/anr目录下,即便是没有root的手机也是可以通过adb命令将该文件pull出来,一个traces文件中包含了...

2019-09-20 11:59:13 3156

转载 Android ANR分析

前言ANR即Application Not Responding,顾名思义就是应用程序无响应。在Android中,一般情况下,四大组件均是工作在主线程中的,Android中的Activity Manager和Window Manager会随时监控应用程序的响应情况,如果因为一些耗时操作(网络请求或者IO操作)造成主线程阻塞一定时间(例如造成5s内不能响应用户事件或者Broadcast...

2019-09-20 11:09:12 2285

转载 使用ContentProviderOperation 来提升应用性能

本文链接:https://blog.csdn.net/imuhao/article/details/52002995ContentProviders 是android 系统核心组件之一,ContentProviders 封装了数据的访问接口,其底层数据一般都是保存在数据库中或者保存在云端。有时候你需要更新多行数据,可以选择调用多次ContentResolver的对应函数,或者 使用批量操作。...

2019-09-17 14:26:58 366

转载 安卓手机解锁:Device is locked. Please unlock the device first

Device is locked. Please unlock the device first 在安卓P的手机上如果adb remount 不上手机并且报如上的错的话,就需要对手机进行解锁。1.首先需要打开开发者模式中的OEM unlocking开关2.adb reboot bootloader3.fastboot flashing unlock4.fastboot get...

2019-09-17 10:08:25 1366

转载 关于Android scrollview 数据加载完成自动滑动到底部到问题

一开始到解决方案是按照网上说的焦点问题:在ScrollView嵌套的第一个布局中加入如下获取焦点的代码:android:focusable="true"android:focusableInTouchMode="true"然后发现这种方法无效。然后我就在代码中设置焦点,为ScrollView嵌套的第一个布局,layout.setFocusable(true);layout...

2019-09-12 14:25:28 436

转载 ActionBar中OptionMenu弹出菜单的位置和overflow右边距的调整

ActionBar中OptionMenu的显示以前是显示在overflow的下面,5.0以后显示的位置直接覆盖了overflow图标在这里是通过修改样式的方式来解决显示问题解决方案1. 在values-v21 styles.xml文件中添加<style name="OverflowMenuStyle" parent="Widget.AppCompat.PopupM...

2019-08-28 10:50:41 598

转载 Iterator和Iterable解析

之前一直搞不清楚Iterator和Iterable到底有什么关系,它们的区别是什么,今天查看Java集合类源码才发现其中的名堂,接下来给大家讲讲我的分析与理解。Iterable接口Iterable是接口,Iterable是1.5引入的新特性,Iterator是1.2就有了,二者都是为了迭代造作,Iterable只是包装了Iterator,从而允许实现此接口的对象成为foreach语句的目标...

2019-08-24 10:18:19 156

转载 详解Java中的clone方法 -- 原型模式

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/brave2211/article/details/18369201Java中对象的创建clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,...

2019-08-23 20:25:05 100

转载 Object类详解

Object是所有类的父类,任何类都默认继承Object。Object是类层次结构的根类。每个类都使用Object作为超类。所有对象(包括数组)都实现这个类的所有方法。//Objectpublic class Object {private static native void registerNatives();/*对象初始化时自动调用此方法*/static { regi...

2019-08-23 20:04:09 381

转载 ImageView的scaleType的属性理解

ImageView的scaleType的属性值有MATRIX,FIT_XY,FIT_START,FIT_END,FIT_CENTER,CENTER,CENTER_CROP,CENTER_INSIDE.1.android:scaleType=“center”保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size时,多出来的部分被截掉。2.androi...

2019-08-23 14:01:37 101

转载 java源码品读(1)— Object

java是一门面向对象的语言,那么就从一切对象的根本Object读起吧。位置:java.lang.Object* Class {@code Object} is the root of the class hierarchy.* Every class has {@code Object} as a superclass. All objects,* including arra...

2019-08-22 21:08:08 97

转载 Java中的断言assert

Java陷阱之assert关键字一、概述在C和C++语言中都有assert关键,表示断言。在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。二、语法在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候...

2019-08-21 21:25:52 171

转载 一份超全超详细的 ADB 用法大全

一份超全超详细的 ADB 用法大全2016年08月28日 10:49:41Qazwsxedc2020阅读数 81510原文链接:https://github.com/mzlogin/awesome-adbADB 常用用法大全,收集了在开发、测试和普通用户使用手机过程中可能用到的各种用法,仍在持续更新完善中,欢迎补充指正,收藏关注。 —— 由mzlogin分享ADB,即...

2019-08-21 11:00:16 398

空空如也

空空如也

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

TA关注的人

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