- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 SharedPreferences 总结分析
一、使用问题存储过大key/value;(加载耗时、解析时会创建过多临时变量导致频繁GC、加载之后会一直在内存中)存储json或者html;(转义)多次调用 sp.edit() 或者 edit.commit()、edit.apply();主线程commit();跨进程使用;单个sp文件存储;频繁读写与不常用的放一起;二、源码分析edit()// SharedPreferencesImpl.java@Overridepublic Editor edit() { sync
2020-09-27 20:05:27 274
原创 SharedPreferences所引发的性能问题
我们在使用SharedPreferences时,往往遵循Google的建议,使用apply();SharedPreferences.Editor sharedata = getSharedPreferences("data", 0).edit();sharedata.putString("item","hello getSharedPreferences");sharedata.apply();那么问题来了,这到底会不会有性能问题呢??????答案是:8.0以下会,而且完全是源码太简单导致的w
2020-07-27 18:46:31 1713
原创 关于 SharedPreferences 的一些思考
对于 SharedPreferences ,想必不会陌生,通常我们会这么用Editor sharedata = getSharedPreferences("data", 0).edit();sharedata.putString("item","hello getSharedPreferences");sharedata.commit();SharedPreferences 的百度定义如下:SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,
2020-07-11 08:35:23 554 2
原创 Handler机制的逐级深入
首先,我们来探讨一个问题:对于一个系统来讲,最重要的是什么?相信不同的人会有不同的理解,在我看来,最重要的是数据。一整个系统的运行,如果缺少的数据的支持,那么也就失去了作为系统的意义。而谈到数据,必不可少的就是数据的通信。在Android中,谈到数据的通信,必不可少的就是线程间通信、进程间通信。线程间通信方式有内存共享、管道等,其中最具代表性的便是handler。Handler机制是And...
2019-06-24 16:40:43 375
原创 android反射(reflect)笔记(一)
反射(提供封装程序集、模块和类型的对象),一种计算机处理方式。是程序可以访问、检测和修改它本身状态或行为的一种能力。 指程序可以访问、检测和修改它本身状态或行为的一种能力。 程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段
2017-05-02 15:10:31 504
原创 自定义Gradle task
自定义 task(复制文件)task copyFile(type: Copy, description: 'assemble') { from('***\\**\\text.txt') into('***\\app\\src\\main\\assets') include('**/*')}设置运行//打包运行app时会自动调用 tasks.withType(Java
2017-05-02 09:36:31 281
原创 Android gradle 配置strings.xml资源
需求 在开发中,往往会遇到同一个工程需要打出不同包的情况,此时可以选择进行渠道打包,但在某些情况下,如需要打包出的apk名称不同,或其中某处显示文字不同,此时,使用渠道配置显得繁琐,如何简单明了的配置不同的字符串资源,下面介绍解决此问题的一种方式分析 在开发android项目中,以eclipse与android studio为多,官方推荐使用studio,而studio最大的特点便是有g
2017-04-13 16:37:39 5534
原创 总结Error while launching activity
在使用studio 2.3.0版本的时候,出现了一个非常奇葩的问题。运行正常,使用Build APK与Generate Signed APK…都没问题,能打包,并且能安装,运行也正常,当直接run ‘app’在真机调试的时候出现了Error while launching activity。 大致意思是找不到这个activity查这个问题的时候,很多遇到这种情况的只需要clean或者rebuild
2017-03-27 16:24:55 11059 3
原创 Glide 图片加载 java.lang.IllegalArgumentException
加载方式Glide.with(context).load(imageUrl).centerCrop().placeholder(R.drawable.thumbnail_null).crossFade().into(mImageView);错误信息java.lang.IllegalArgumentException: You must not call setTag() on a view Gli
2017-03-21 16:48:57 4109
原创 Android Studio 渠道打包 小试
由于androd的开源性,其平台多种多样,比如 应用宝、豌豆荚、360、小米商店、华为商店、vivo商店、oppo商店…等等,相比于ios,呈现出了一种多平台方式,而这个多平台导致了对于app的要求不同,若需求为使用某一平台的登录用户,如使用小米平台的小米账户或华为平台的华为账户等(往往附带使用了这个平台的支付等功能),那么,就必须为这个平台特意生成一个apk,而这个配置对于其他平台来说又是多余的,
2017-03-20 23:11:56 655
原创 ListView 相关属性设置
在使用ListView时,会有使用到其特定的属性设置,如下(持续更新中…):1. 设置适配器setAdapter(ListAdapter adapter) 设置适配器,此方法使用频繁,不作赘述2. 设置分割线setDivider(Drawable divider)//分割线setDividerHeight(int height)//分割线高度 设置分割线,当不需要使用其自带分割线时
2017-03-13 14:42:28 490
原创 android 时间控件 设置不可点击编辑
DatePicker、TimePicker、NumberPicker时间控件在使用时,会遇到点击控件中数字弹出键盘编辑,点击键盘输入完毕(有回车符的点击回车符)生效,否则无效,去除此点击事件方法为setDescendantFocusability(参数);其中参数设置为相应控件的FOCUS_BLOCK_DESCENDANTS值(此值定义在viewgroup中)
2017-03-09 18:28:18 2386
原创 ListView addHeaderView 与 setOnItemClickListener 中的坑
ListView 在设置头部的时候,其中headView属于setOnItemClickListener 中的第0个item,而数据的第0项其实显示于ListView的第1个item,因此注意itemclick的源数据获取,避免出现数组越界异常等
2017-03-09 12:58:30 627
原创 突发性 java.lang.NoClassDefFoundError
开发中所遇问题 NoClassDefFoundError , 以此作为此问题的一种解决方案
2017-03-09 10:58:16 530
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人