自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 踩坑,Fragment使用遇到那些坑

一、 Fragment为什么要用newInstance来初始化:我们利用Android studio新建fragment的时候,利用谷歌提供的模版,可以看到,新建一个fragment时,fragment的初始化,采用的是静态工厂的形式,具体代码如下:public class BlankFragment extends Fragment { // TODO: Rename para...

2018-01-16 15:25:28 39356 4

原创 菜籽桌面4.2.0~4.5.2常见问题解答

2、星辰、星驰、凯捷等车型,接入盒子后就可以使用carplay了,宝骏车型还另外需要刷入一个USB补丁,这个USB补丁是专车专用的,因此也需要一定费用,自己考虑清楚哦~4、星驰,星辰,凯捷等车型长按 * 键重启车机,等黑屏后按下 拨号键,会进入到recovery模式,选择升级MPU版本,然后等待重启即可。2、受系统限制,咱们的车机只能安装32位软件,如果你下载的是64位的软件,那么是无法安装的,这个问题搞不定,如果安装不上,那就放弃吧。

2024-06-28 18:58:40 3970 2

原创 鸿蒙应用开发(二)环境搭建

应用/服务发布形态为APP Pack(Application Package,简称APP),它是由一个或多个HAP(Harmony Ability Package)包以及描述APP Pack属性的pack.info文件组成。一个HAP在工程目录中对应一个Module,它是由代码、资源、第三方库及应用/服务配置文件组成,HAP可以分为Entry和Feature两种类型。Entry:应用/服务的主模块,可独立安装运行。

2023-12-10 17:18:53 2304

原创 鸿蒙应用开发(一)应用适配调研

写在前面:以下内容基于我个人翻阅的官方资料以及自己的理解写的,可能存在认知和理解上的偏差,有些地方并不一定是对的,请谨慎对待,注意甄别!

2023-11-20 17:42:32 1963

原创 WorkManager使用记录

系统提供的一个新的任务形式,旨在替代Service,因为Service比较重,且前台感知能力太强(需要发送通知),因此Google推出了WorkManager,并对任务做了一些限制,以更好的适配系统任务调度,起到降低开发成本,降低设备功耗的作用。

2023-11-20 17:33:20 163

原创 Paging3的使用踩坑记录

Paging3是jetpack推出的一个分页加载库,用于方便开发者实现分页加载功能,支持显示加载状态,重试机制,支持协程与RxJava结合使用,相对于传统的分页加载方案,我们不需要关注recyclerview的滑动状态,然后根据状态去实时请求接口,所有相关的判断逻辑,Paging3已经在内部为我们做好了实现,我们只需要实现Paging3的提供的抽象方法,即可实现分页加载功能。

2023-11-20 17:30:01 475

原创 一种全面屏手势适配方案

全面屏适配

2022-06-21 20:42:54 501 1

原创 Android 内存优化总结

内存优化

2022-03-10 17:30:16 3513

原创 探究Bitmap在Android中的内存占用

Bitmap的内存占用检测

2022-02-24 15:36:54 3240

原创 RxJava使用与原理分析

一、事件分发流程:常规创建Observable观察者:Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(@NonNull ObservableEmitter<String> emitter) throws Exception { emitter.onNext("");

2021-12-19 23:21:56 1839 2

原创 热更新方案总结(文章仅为总结,不涉及代码)

一、热更新方案的引入:项目发版上线后,发现一个bug,这种时候,要么忍受线上bug的存在,等待下个大版本更新时一并解决,要么发布小版本更新,但是更新小版本这种事情对于很多用户来讲,是一个体验很不好的事情:1、浪费用户流量,虽然现在流量不怎么值钱,但是下载安装的等待过程也是很影响用户体验;2、对于更新狂人来讲,这些用户热爱更新,但是更新完毕后仅仅是修复一个小bug,对于没碰到这个bug的用户来讲...

2020-04-25 21:47:39 2245

原创 目前我所接触的兼容性最好的屏幕适配方案

头条推出的修改DisplayMetrics的缩放级别的方案,侵入性极低,但是这要求所有的UI图按照同一套设计尺寸来进行布局,在这种情况下,如果你的项目里面有第三方控件,而恰好这些第三方控件的设计尺寸跟你的UI设计尺寸不一致,那头条的这个方案就不适用了,而且这种情况挺常见的,我这里提供的这种方案,侵入性就会比较高了,但是可以有效的避免上述问题,而且经过线上连续三年的版本验证,一切正常,没出现过问题,下面上代码。2、创建SizeUtil,传入参数,参数解释看代码上的注释。

2019-07-26 13:48:57 217

原创 封装的图片选择工具,通过调用系统API实现,代码量少,侵入性低

package com.konstant.tool.lite.utilimport android.app.Activityimport android.content.Contextimport android.content.Intentimport android.graphics.Bitmapimport android.graphics.Colorimport andro...

2019-05-22 13:47:08 186

原创 安卓Q暗黑模式适配

安卓Q版本新增了暗黑模式,用户只需在系统中开启暗黑模式(MIUI中叫做深色模式),即可开启全局暗黑模式,这个也需要第三方应用来进行适配暗黑模式:本质上就是两套主题的切换,从明亮的主题切换暗色主题的一个过程,网上有很多成熟的第三方主题切换框架可以使用,不过我们这里讲的是利用安卓系统自带的API进行切换先上两张效果图吧:明亮模式暗黑模式下面是适配步骤:1、颜色定义:首先在re...

2019-05-20 10:46:44 9496 5

原创 安卓6.0以上动态权限申请

没啥技术含量,代码可以直接粘走使用从安卓6.0(api23)开始,权限声明不仅需要在manifest中添加权限声明,还需要在JAVA代码中再次申请一遍,但是权限申请的结果是在onRequestPermissionsResult中回调的,当拿到回调结果后,还需要再判断用户是否勾选了“不再提示”选项,如果再次申请,会出现很多重复代码,因此,把权限申请放在baseActivity里面,我们在使用

2018-01-22 19:22:48 335

原创 动态权限申请封装在BaseActivity中

public class BaseActivity extends AppCompatActivity { private int mRequestCode = 12; private String mReason; private String mPermission; // 申请权限 protected void requestPermission

2018-01-02 17:18:49 1075

原创 解决ListView的The content of the adapter has changed but ListView did not receive a notification崩溃问题

最近在写一个聚合工具箱的时候,添加了滑动返回功能,使用ListView时(不要问我为啥不用recycleview,小工具嘛,主要是逻辑,页面都是次要的),遇到如下崩溃问题 java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notifi...

2018-01-02 14:43:25 3262

原创 安卓3DES加解密(kotlin)

import android.util.Base64import java.security.SecureRandomimport javax.crypto.Cipherimport javax.crypto.SecretKeyFactoryimport javax.crypto.spec.DESedeKeySpec/** * 描述:3DES加密 * 创建人:菜籽 * 创建时间:

2017-12-19 15:46:10 716

原创 Android kotlin fragment中使用布局控件

注意控件不能从 onCreateView中获取,而是要从 onViewCreated中获取和调用,具体代码如下:package cn.showmac.tool.fragmentimport android.os.Bundleimport android.support.v4.app.Fragmentimport android.util.Logimport android.view...

2017-12-04 11:24:25 1930

原创 H5网页调用原生支付宝支付的完整demo

检测到支付宝时会调起原生APP,检测不到支付宝时会调起网页版支付宝package cn.showmac.simpledemo;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support....

2017-11-30 11:05:32 25716 3

原创 ADIL验证授权

在项目中,我们编写了一个服务,通过AIDL对外提供接口,但是不是没一个调用者都可以调用我们的接口的,这时候,就需要对调用者的身份做授权验证了,验证方法有两种,第一种是权限验证(permission),第二种是包名验证(packageName)一、权限验证:在AIDL的响应方法中,添加以下代码,如果调用着没有声明这个权限,则直接返回nullprivate boolean verifyP...

2017-11-21 16:25:44 458

原创 通过intent跳转到系统拨号页面

Intent intent = new Intent();intent.setData(Uri.parse("tel:" + "12342342423"));intent.setAction(Intent.ACTION_DIAL);startActivity(intent);

2017-09-27 16:40:56 768

原创 通过反射获取资源ID,用于ant、eclipse等工具引用arr资源

解决在非gradle项目引用aar资源时,出现资源文件找不到的问题

2017-09-24 12:08:35 472

原创 利用Timer类实现获取验证码并倒计时的功能

利用Timer类实现获取验证码并倒计时的功能

2017-09-23 20:12:05 310

原创 解决自定义Toast(吐司)设置宽高无效的问题

网上搜索了各种教程,什么动态设置啊,什么获取屏幕宽高啊之类的,纯属扯淡,不仅繁琐,而且大多没有效果,自己抠了半天,发现一个最简单的解决办法,下面上代码:先上JAVA代码:/** * 描述:自定义吐司 * 创建人:菜籽 * 创建时间:2017/9/21 上午11:13 * 备注: */public class KonstantToast { public stati...

2017-09-21 12:06:02 2468 2

原创 Fragment中调用getActivity为null的解决办法

Fragment中调用getActivity为null的解决办法

2017-09-20 14:28:24 1160

原创 透明控件点击事件穿透的解决办法

透明控件点击事件穿透的解决办法

2017-09-19 20:18:50 7698

原创 解决APP进程被杀掉之后,导致fragment失效或者错乱的办法

activity被杀掉之后,它会通过如下方法把数据缓存下来protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);}当再次进入activity时,系统会从savedInstanceState中回复数据,但是我们从activity启动时,会重新初始化Fragme...

2017-09-18 23:03:09 1732

原创 ScrollView嵌套GridView或者ListView只显示一行的解决办法

一、ScrollView嵌套GridView:重写GridView的onMeasure方法public class MyGridView extends GridView { public MyGridView(Context context, AttributeSet attrs) { super(context, attrs); } publi

2017-09-17 21:41:35 285

原创 fragment的切换与隐藏(无需重建)

fragment的切换与隐藏(无需重建)

2017-09-17 21:10:37 1130

原创 解决ScrollView嵌套viewpager的冲突问题

解决办法:第一步:给viewpager设置制定高度,比如120dp第二步:给ScrollView的xml布局中添加  android:fillViewport="true"  属性(以上两步已经能解决viewpager不显示的问题了,如果想继续解决滑动冲突的问题,继续往下看)第三步:重写ScrollView的触摸拦截事件,完整代码如下package cn.showmac.s

2017-09-15 15:01:11 356

原创 最后一个参数使用了不准确的变量类型的 varargs 方法的非 varargs 调用

Error:(341, 64) 警告: 最后一个参数使用了不准确的变量类型的 varargs 方法的非 varargs 调用;对于 varargs 调用, 应使用 Class对于非 varargs 调用, 应使用 Class[], 这样也可以抑制此警告Method method  =  cls.getMethod( " hashCode " ,  null );  //  

2017-08-15 10:18:19 13025 1

原创 图文演示AIDL的使用全过程

公司要用到AIDL,特地去学习了一下,然后把大致调用方法写一下,包含一些要注意的关键点

2017-07-29 16:54:04 599

原创 经常用到的GIT指令

网上的GIT指令都贴的乱七八糟的,自己总结了下,把常用的指令贴上来,直接粘贴就能用

2017-07-29 15:49:41 278

原创 防止用户过快点击的工具类,多按钮同样适用

网上翻了好多别人写的防止过快点击,但是都只是针对耽搁按钮实现的,于是乎,自己写了个针对多个按钮实现的

2017-07-28 14:29:51 250

原创 获取设备信息的工具类

/** * 描述:获取设备的硬件信息 * 创建人:菜籽 * 创建时间:2017/1/5 0005 19:33 * 备注: */public class DeviceInformation { private static Properties properties; /** * 获取当前设备的IMEI信息 * * @param co

2017-07-26 18:54:04 505

原创 安卓文件保存、读取工具类,可以直接用,包含路径说明

安卓文件存储的工具类,把文件保存到内部存储,sharedpreference等

2017-07-26 18:40:20 659

转载 将图片裁剪成圆形的图片处理工具,可以直接粘走用

/** * 描述:图片处理工具 * 创建人:菜籽 * 创建时间:2017/6/9 上午11:56 * 备注:来自网络,来源不记得了,如有侵权,请联系我 */public class BitmapUtil { /** * 裁剪成圆形头像 * @param bitmap * @return */ public synchronize

2017-07-26 16:58:38 1339

原创 自己写的一个打log的工具类,没啥技术含量,可以直接粘走用

/** * 描述:打印log的工具类 * 创建人:菜籽 * 创建时间:2017/7/18 下午5:56 * 备注: */public class LogUtils { private static boolean flag = true; public static void d(String tag, String string) { if (f

2017-07-26 16:56:06 343

原创 欢迎使用CSDN-markdown编辑器

/** * 描述:打印log的工具类 * 创建人:菜籽 * 创建时间:2017/7/18 下午5:56 * 备注: */public class LogUtils {private static boolean flag = true;public static void d(String tag, String string) { if (flag) {

2017-07-18 18:07:47 80

空空如也

空空如也

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

TA关注的人

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