自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

VipPetergee的博客

吾生也有涯,而知也无涯...

  • 博客(121)
  • 资源 (5)
  • 收藏
  • 关注

原创 更新完Android Studio 4.2报错javax/xml/bind/JAXBException解决方法

原因更新完Android Studio 4.2后默认JDk中不包含JAXB API导致解决方法:方法一Project Structure -> Platform Settings\SDKs -> Android API xx Platform -> Change "Java SDK" to 1.8方法二、指定JDk路径为本地JDK路径...

2021-05-07 15:13:42 974 1

原创 TransactionTooLargeException解决与分析

1、前言:前段时间线上突然间报了一个问题,从页面详情页(以下简称页面A)跳转图片浏览页(以下简称页面B),发生崩溃,但是只有个别的页面A跳转页面B发生崩溃,后来通过查询崩溃日志发现一个异常:TransactionTooLargeException2、问题排查:通过查询代码,发现是因为页面B跳转页面B通过Bundle传递了Parcelable对象,但是通过Bundle传递Parcelable大小限制为1M,超出1M就会报TransactionTooLargeException3、解决方案:1、

2021-04-13 15:50:22 28

原创 LiveData常用方法源码分析

1、postValueprotected void postValue(T value) { boolean postTask; // 同步锁 synchronized (mDataLock) { // 判断mPendingData是否为NOT_SET postTask = mPendingData == NOT_SET; // 对mPendingData赋值 m

2021-03-16 16:44:55 16

原创 LiveData从入门到实战

一、简介1、什么是LiveDataLiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。2、LiveData 优势确保界面符合数据状态LiveData 遵循观察者模式。当底层数据发生变化时,LiveData 会通知 Observer 对象。可以整合代码以在这些 Observer 对象中更新界面。这样一来,无需在每次应用数据发生变化时更新界面

2021-03-16 11:22:02 23

原创 手把手教你实现可滑动消失的PopupWindow

一、前言日常开发过程中经常使用PopupWindow作为弹层,系统提供的方法都是通过点击消失,那能不能通过滑动实现消失呢?今天我们就通过添加手势,实现可滑动消失的PopupWindow二、分析1、既然是实现可滑动的PopupWindow,我们就继承系统的PopupWindow来实现2、需要添加滑动手势,重写onTouch事件,分别处理点击、滑动、抬起操作3、定义向上滑动消失,调用系统update方法来动态改变PopupWindow位置三、代码实现1、代码版本一class To

2020-12-16 16:06:55 201

原创 Android10手机无法拉起微信小程序解决方案

起因近期测试反馈Android10系统华为手机上无法拉起小程序,但是在同版本系统其它品牌手机上可以正常拉起。排查通过微信社区问题查询,发现也有开发者遇到该问题,微信运营团队回复是机型兼容性问题导致解决方案1、查看微信悬浮窗权限是否开启,如果没有开启,开启后可正常使用2、更新微信SDK版本,在 build.gradle 文件中,添加如下依赖即可dependencies { api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta

2020-11-03 14:11:12 834 2

原创 使用RecyclerView实现点赞头像叠加效果

概要:点赞头像效果使用的地方很多,实现的方式也很多,下面通过使用RecyclerView实现一下1、创建布局文件 一个recyclerview,一个点赞图片<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app=

2020-08-25 17:21:32 504

原创 ViewPager2,用起来!

一、缘起:ViewPager2推出已经有一段时间了,而且官方推出了稳定版本Version 1.0.0,相比ViewPager增加了很多优势,是时候用起来了。二、优势1、垂直方向支持ViewPager2 支持垂直分页 <androidx.viewpager2.widget.ViewPager2 android:id="@+id/viewpager_two" android:layout_width="match_parent"

2020-07-23 14:55:59 1148

原创 抽丝拨茧——EventBus源码解析
原力计划

一、 EventBus 注册1、EventBus.getDefault()通过DoubleCheck创建EventBus实例 public static EventBus getDefault() { if (defaultInstance == null) { synchronized (EventBus.class) { if (defaultInstance == null) { d

2020-06-05 17:41:20 78

原创 电商项目之环信在线客服接入
原力计划

一、缘起电商项目开发中在线客服属于常见需求,可以通过环信开发文档按照步骤接入,由于很多同学在开发过程中经常遇到问题,而且环信提供的Demo无法正常运行,所以写下这篇文章用于解惑。二、材料准备1、在环信客服后台创建客服云账号2、下载官方demo下载链接https://github.com/easemob/kefu-android-demo三、开始接入1、build.gradle 配置android{ ...... defaultConfig { ndk {

2020-06-02 14:43:58 392

原创 ARouter入门之从零开始——Kotlin版
原力计划

缘起随着app项目的逐步迭代开发,单独运行调试比较耗时,实行项目组件化拆分迫在眉睫,而跨组件通信是必须要解决的问题,而ARouter算是一个比较成熟的路由解决方案,所以写下此篇文章,借此来记录。一 、添加gradle基础配置apply plugin: 'kotlin-kapt'android {kapt { arguments { arg("AROUTER_M...

2020-05-07 18:34:32 300

原创 addView引发的崩溃问题及思考分析
原力计划

开发过程中经常会通过addView()方法动态添加子控件,如果不注意的话会出现异常:Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child’s parent first.一、实际案例下面我们通过一个...

2020-04-20 18:13:52 432

原创 Mac键盘快捷键

Mac 键盘快捷键您可以按下某些组合键来实现通常需要鼠标、触控板或其他输入设备才能完成的操作。Command(或 Cmd)⌘Shift ⇧Option(或 Alt)⌥Control(或 Ctrl)⌃Caps Lock ⇪Fn在 Windows PC 专用键盘上,请用 Alt 键代替 Option 键,用 Windows 标志键代替 Command 键。Apple 键盘上的某些...

2020-02-26 12:10:45 104

原创 Mac版AndroidStudio快捷键,提升你的开发效率!

AndroidStudio Mac快捷键 (Mac OS 10.5+)由于最近更换mac电脑开发android,特总结一篇关于AndroidStudio的快捷键文章,提高开发效率,用于备忘分享常规操作功能描述快捷键全部保存Command+S同步Command+Option+Y最大化/最小化编辑器Ctrl+Command+F12添加到收藏夹Opti...

2020-02-26 12:04:01 545

翻译 APP启动方式分析——冷启动、热启动、温启动

APP启动分析Cold startAt the beginning of a cold start, the system has three tasks. These tasks are:1、Loading and launching the app.2、Displaying a blank starting window for the app immediately after l...

2019-11-21 16:38:16 3437 3

原创 使用Kotlin自定义viewPagerIndicator

一、需求分析1、需求图// 初态// 中间状态// 终态2、分析这是一个很简单的indicator,要求指示器随着viewpager进行相应滑动,滑动次数和viewpager的数量相同,满足indicator状态变化3、方案制定继承LinearLayout,在LinearLayout中添加控件,提供跟随viewPager滑动方法,添加indicator位移动画改变india...

2019-10-15 15:53:20 285

原创 QQ分享纯图片

分享纯图片private fun onClickShare() { val params = Bundle() params.putString(QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL,imageUrl.text.toString()) params.putString(QQShare.SHARE_TO_QQ_APP_NAME, appNa...

2019-09-03 17:56:54 1030

原创 Jenkins+Gradle+Gitlab+蒲公英 +打包成功后发送邮件配置

一、配置全局属性 Environment variablesANDROID_HOME SDK路径/Users/lejumobile/Library/Android/sdkGRADLE_USER_HOME/Users/lejumobile/Library/Android/gradle/gradle-4.7二、配置jenkins地址Jenkins Location 路...

2019-07-19 15:10:33 365

原创 Flutter环境搭建

1、安装git下载FlutterSDKgit clone https://github.com/flutter/flutter.git2、配置环境变量**将Flutter中bin目录配置到Path路径下3、进入CMD,运行flutter doctor检测Dart SDK**如果长时间未下载或者连接超时:方法一:执行下面命令:设置url链接地址set PUB_HOSTED_UR...

2019-07-01 09:57:02 195

原创 Android热修复-Tinker简析

一、简介日常工作工作中难免会遇到项目上线后出现bug问题,如果紧急发版往往由于渠道审核时间问题,导致bug修复不及时,影响用户体验。这时我们需要引入热修复,免去发版审核烦恼。热更新优势:让应用能够在无需重新安装的情况实现更新,帮助应用快速建立动态修复能力。轻量而快速的升级,无需发版远端调试,,可以将补丁推送给指定用户可以通过patch使用户安装两个不同的版本,埋点进行数据统计局限...

2019-04-09 18:44:33 245

原创 SparseArray基本使用及源码分析

一、简介1、适用于键为int的map数据结构类型2、适用于小规模数据存储3、内部使用二分查找进行数据查询,查询效率高4、不需要单独开辟内存来映射对象,节约内存二、基本使用1、创建mSparseArray全局变量 val mSparseArray=SparseArray<String>()2、添加操作添加过程中通过添加两个键重复,值不重复的两个数据,发现键重复,值覆盖...

2019-03-19 17:45:35 536

原创 常见String样式格式化汇总

1、StringFormat在Strings文件中创建string标签,通过%1s!代替string字符,s!代替string字符,%2s!代替string字符,d代替int字符,进行格式化<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>使用案例btn...

2019-03-18 17:43:05 312

原创 IPC之Messenger传递数据

一、基本使用使用messager通信是基于binder途径进行传递数据,和AIDL类似,都是通过客户端绑定服务的形式实现数据传递步骤如下:1、在 manifest中注册服务,作为远程服务&amp;lt;service android:name=&quot;.service.RemoteService&quot; android:enabled=&quot;true&quot; android:exported=&quot;true...

2019-03-14 19:32:26 277

原创 sharedPreferences使用及缓存机制分析

日常开发中经常使用sharePreference存储数据,非常简单快捷,下面我们将对此进行分析一、基本使用封装工具类方便调用class SpUtils{ private val context:Context=MyApplication.instance() private val sp:SharedPreferences=context.getSharedPreferenc...

2019-03-06 18:42:01 1527

原创 Activity生命周期、启动模式和startActivity源码分析

一、生命周期oncreate()、onStart()、onResume()、onPause()、onStop()、onDestory()、onRestart()、onNewIntent()二、启动模式Standard()每次启动activity都会在栈中创建一个新的实例SingleTask()每次启动activity都会判断栈中有没有该activity实例,如果没有则创建新的activ...

2019-03-05 17:38:54 317

原创 BroadcastReceiver和LocalBroadcastManager

BroadcastReceiver1、发送和接收广播 // 全局广播 // 发送 val intent = Intent() intent.action=ActionConstant.ACTION_ONE intent.putExtra("EXTRA", "全局广播") sendBroadcast(inte...

2019-03-04 10:58:52 274

原创 LruCache缓存机制

LruCache缓存机制基本使用:// 设置lruCache缓存大小 int maxLruCache= (int) (Runtime.getRuntime().maxMemory()/8); LruCache&amp;lt;String,Bitmap&amp;gt; lruCache=new LruCache&amp;lt;String, Bitmap&amp;gt;(maxLruCache){ ...

2019-03-01 14:58:12 349

原创 Android Service梳理

1、Context.startService()生命周期onCreate、onStartCommand、onDestroy停止service对应方法 stopService、stopSelfSTART_STICKY正常情况下只有当手动调用stopSelf或者stopService时才会关闭,内存不足关闭后会自动重启START_NOT_STICKY、只有当前进程保持接收命令的时候才会...

2019-03-01 14:03:43 150

原创 Kotlin实践之多类型RecyclerView及列表单选效果

一、初衷近期项目需要实现类型列表,使用java编写想必大家都已经熟悉,今天使用kotlin实践一把,顺便熟悉下kotlin使用二、需求两种条目类型一种是普通的文字类型,另外一种是带有单选框的条目类型三、分析类型一使用一个textView布局显示,类型二使用一个textView+imageView布局显示,单选可以通过recyclerView的条目点击事件监听实现,选择一个的同时将其他设置...

2018-11-30 18:24:25 1180

原创 Kotlin实践——使用RecyclerView实现一个简单列表及点击事件

一、初衷随着Kotlin的不断普及,很多公司开始完全使用Kotlin进行项目开发,学会使用Kotlin开发android项目变得越来越重要,下面使用Kotlin实现一个RecyclerView的列表二、代码由于简单使用RecyclerView实现一个列表及点击事件功能比较简单,代码量较少,所以直接贴代码了1、Activity代码class KotlinRecyclerVie...

2018-08-20 15:08:02 6705

原创 IntetntService基本使用及源码解析

一、简介 IntentService is a base class for {@link Service}s that handle asynchronous * requests (expressed as {@link Intent}s) on demand. Clients send requests * through {@link android.content.C...

2018-08-02 16:04:56 203

原创 使用Material Design实现沉浸式状态栏+悬浮+渐变效果实现

前言近期发现市面上很多App都采用了沉浸式状态栏效果,近期抽时间使用Material Design控件实现了一个,故记录分享代码实现1、添加Material Design依赖 implementation 'com.android.support:design:27.1.1'2、布局搭建&lt;?xml version="1.0" encoding="utf-8"?...

2018-08-01 16:34:49 1155

原创 使用RecyclerView自定义实现二级联动列表

一、需求分析单各list列表实现很简单直接使用RecyclerView填充列表即可,那么多级列表该怎样实现呢,同样很简单,只需监听第一级列表的item点击事件再填充第二级列表即可实现。二、代码实现1、创建布局文件由两个RecyclerView填充布局,左右分布&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;LinearLayou...

2018-07-27 14:15:58 2781 1

原创 LayoutInflater源码解析

LayoutInflater.from(getApplicationContext()).inflate(R.layout.activity_main,null);上面这行代码我们在开发中经常会用来加载一个指定布局,但是它是怎样将布局显示到屏幕上的呢? 通过源码看看究竟:1、 LayoutInflater.from(context)通过context获取layoutInflate...

2018-07-20 18:05:50 128

原创 SetContentView源码解析

1、setContentView作用Set the activity content from a layout resource. The resource will be inflated, adding all top-level views to the activity.将布局资源文件设置activity上的内容,资源将会被渲染,添加到activity的顶级视图2、...

2018-07-20 14:15:42 180

原创 OkHttp源码分析

OkHttp源码分析1、基本使用// to create a shared instance with the custom settings// 共享client实例 public final OkHttpClient client = new OkHttpClient.Builder() // 设置拦截器 .addInterceptor(new HttpLo...

2018-07-04 17:48:41 172

原创 Retrofit源码分析

Retrofit源码分析1、优点A:支持同步和异步请求操作B:支持多种数据格式(Gson、Json、XML)C:使用注解方式配置请求参数,简单易用D:拓展性好,支持RxJava作为convertAdapter源码分析构建retrofit实例Retrofit retrofit = new Retrofit.Builder() .baseUrl("h...

2018-07-02 17:48:54 140

原创 AsyncTask基本使用及源码分析

一、使用案例 private class DownloadFilesTask extends AsyncTask { @Override // 任务执行前执行该方法 protected void onPreExecute() { } // 异步执行耗时操作 protected Long doInBackground(URL... urls...

2018-05-29 18:04:39 150

原创 Handler消息机制从发送到处理消息,调用流程

经过前两篇的流程梳理,已经对Handler、Looper、Message、MessageQueue、ThreadLocal有了整体了解,今天将调用流程进行梳理如下:

2018-05-22 13:51:52 317

原创 ThreadLocal源码流程梳理(Handler相关部分)

随着这篇流程梳理的完成,关于Handler相关的总体流程梳理结束

2018-05-21 18:08:22 166

《重构 改善既有代码的设计》pdf版

《重构 改善既有代码的设计》,本书清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。 本书适合软件开发人员、项目管理人员等阅读,也可作为高等院校计算机及相关专业师生的参考读物。

2019-03-21

银行卡目录对照表

可以根据银行卡号查询到银行卡开户行及银行卡类型信息

2017-08-10

ReactNactiveDemo

集成配置ReactNative到Studio中,并完成第一行HelloWorld代码,供大家参考使用

2018-07-27

银行名卡号对照表

可以根据银行卡号前6位匹配银行信息

2017-08-11

银行对照表

根据银行卡号,查询银行信息

2017-08-10

空空如也

空空如也

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

TA关注的人 TA的粉丝

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