![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android 基础知识点
文章平均质量分 58
Red_Dragon_
加油(ง •̀_•́)ง
展开
-
利用LruCache封装一个自带三级缓存的ImageLoader
什么是LruCache算法的角度 LRU(Least Recently Used),即最近最少使用算法。Android的角度 LruCache是Android提供的一个缓存工具类应用途径 缓存策略的一种手段,我们都知道三级缓存策略,即:内存—>本地(磁盘/sqlite)—>网络。这里LruCache就是针对三级缓存中的第一级(内存)而提供的一个手段。LRU(L...原创 2017-11-29 10:25:45 · 373 阅读 · 0 评论 -
Android Handler 消息机制
Handler,MessageQueue,Looper 三者的初始化。这是Handler构造函数,当我们new一个Handler,Looper和MessageQueue就跟着初始化了。Looper:Looper myLooper() / Looper prepare()可以看到Looper是通过sThreadLocal.get()去拿这个对象,ThreadLocal是一个以线程为作...原创 2018-05-07 17:41:31 · 283 阅读 · 0 评论 -
android冷知识—当一个Activity有俩个LauncherActivity时会怎样?
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="zj.com.rxjava_operators"&原创 2018-05-14 12:19:21 · 861 阅读 · 0 评论 -
java中的运算符— ~
是对其运算数的每一位取反。例如,数字42,它的二进制代码为: 00101010 经过按位非运算成为 11010101原创 2018-05-18 12:35:22 · 428 阅读 · 0 评论 -
java中的运算符— &=
a &= b 相当于 a = a&b原创 2018-05-18 12:38:41 · 363 阅读 · 0 评论 -
源码角度看Android事件分发机制
所谓点击事件分发,其实就是对MotionEvent分发。当一个MotionEvent产生了以后,系统需要把这个事件传递给一个具体的View,而这个传递的过程就是分发过程。原创 2018-09-28 16:49:52 · 434 阅读 · 0 评论 -
Android中用高德地图实现轨迹回放
效果思路网络数据拉取初始化数据List 定义数据格式,Key:时间 + Value:经纬度。初始化SeekBar 刻度setMax为数据List的size,为什么要这么做?见下一步。初始化SeekBar的Listener onProgressChange的时候,拿到progress,用这个progeress作为position去数据集合里取数据,取出来的数据中再取出其中...原创 2018-05-03 15:03:09 · 4417 阅读 · 2 评论 -
AndroidStudio快捷键小技巧_快速生成main()_快速SystemOutPrintln()
本文例子仅做抛砖引玉,还有很多需要再实际使用中去探索。例1:快速生成Main方法 pvsm => public static void main例2:快速打印System.out.println原创 2018-05-09 11:20:09 · 3918 阅读 · 2 评论 -
Android启动模式
启动模式出现的必然性栈和Activity在Android中式成对儿出现的,他们互相辅助共同来实现一个符合用户使用习惯的“界面流转系统”,虽然他们都是独立的个体,但(在当前android系统设计的情景下)他们脱离了谁,也无法达到这个目的,为了使用户体验更好,谷歌设计的这个“界面流转系统”具备多种跳转模式,让产品设计达到用户在使用过程中对不同界面的不同的跳转预期。四种启动模式...原创 2018-04-24 15:06:38 · 520 阅读 · 0 评论 -
Android查看任务栈
Thanks我是从这个博客学习到的: http://blog.sina.com.cn/s/blog_5de73d0b0102xky0.html本文基于此博客进行一个划重点的记录。明确问题: 即,我们如何去观察一个app进程的Activity任务栈情况。我为什么选择这种方式: 网上还找到一种方式,就是在terminal内直接输出相关信息,但我发现这些信息又臭又长,不能很好的观察...原创 2018-04-23 12:55:37 · 9055 阅读 · 1 评论 -
Glide4.x-爬坑
介绍简体中文_Doc本文基于上述doc进行一次体验记录当前时间2018年4月11曰,版本号4.7建测试项目以及引入坑:Failed to resolve: com.github.bumptech.glide:glide:4.7.0 Show in File Show in Project Structure dialog查询文档:Androi...原创 2018-04-11 11:58:10 · 773 阅读 · 0 评论 -
minsdkversion,complesdkversion,targetsdkversion
这3个东西从我们一开始接触android就无时不刻的出现在我的视线内。minsdkversion:最低支持版本。我们来模拟个场景,比如你现在手上有一台7.0的设备,(7.0设备的api level是24),现在你建个项目,将minsdkversion改成25,那么就会直接出现下面提示: 如果你改成8,那就没事,因为8比你当前设备的24小,在其涵盖范围之内,minsdkversio...原创 2018-03-30 13:14:50 · 317 阅读 · 0 评论 -
一个奇妙的java坑:Long 类型的比较
本文转自:http://www.cnblogs.com/weidiao/p/5468065.html Long userId=127L; Long authorId=127L; System.out.println(userId==authorId);//true userId=128L; authorId=128L; System.out.pr...转载 2018-03-08 14:21:39 · 2764 阅读 · 0 评论 -
内存泄漏—出现情况,非静态内部类对外部类引用持有的泄漏复现
前言本文为制造一个”非静态内部类对外部类的引用持有”泄漏并对其结果进行观察作为学习使用,手段是制造泄漏,目的是了解泄漏产生的原因并未解决提供一种思路。本文只是对泄漏测试代码的一个讲解,并没有涉及到泄漏排查工具的使用,结合工具使用我会另开一片文章,链接我一会儿附上。Code俩个Activity,一个SplashActivity,一个LeakActivity。操作路径是从Spla...原创 2018-05-15 09:55:37 · 2255 阅读 · 0 评论 -
内存泄漏—Android Studio 3.0 Profiler入门
前言本文为内存泄漏分析&Android Studio Profiler入门,由3.0的Android Profiler替代了2.0的Android Monitor。这个需要明确。先来张图感受感受一下: 认识Android Profiler在哪?些许小坑advanced profiling is unavailable for the selec...原创 2018-05-15 10:57:44 · 5743 阅读 · 0 评论 -
Android DataBinding库的使用
前言本篇是MVVM架构的姊妹篇,由于篇幅原因,所以将这个工具最简单的使用抽出来说一下。实践库配置android{ ... dataBinding { enabled true } ...}xml布局 <?xml version="1.0" encoding="utf原创 2018-09-11 16:20:52 · 830 阅读 · 0 评论 -
EditText系列(1)-焦点问题处理
转载请注明出处: http://blog.csdn.net/user11223344abc?viewmode=contents 出自【蛟-blog】1.概述本文采取的是监听键盘收起和打开来监听的。即: 键盘收起的时候认定EditText失焦。 键盘打开的时候认定EditText获得焦点。2.API隐藏键盘InputMethodManager imm = (InputMethod原创 2017-06-25 23:19:15 · 341 阅读 · 0 评论 -
EditText系列(2)-修改回车键信息
转载请注明出处: http://blog.csdn.net/user11223344abc?viewmode=contents 出自【蛟-blog】若想改变键盘回车键的提示信息(本文以“搜索”为例),需要知道有2中途径和一个注意点。1.途径一,java代码设置edit.setImeOptions(EditorInfo.IME_ACTION_SEARCH);2.途径二,xml内属性设置原创 2017-07-14 09:43:27 · 343 阅读 · 0 评论 -
Java锁
前言参考:https://www.cnblogs.com/wangyayun/p/6593446.html 进阶:http://www.importnew.com/19472.html 本文Demo:java中的锁一般指的是互斥锁,只是一般,高阶的本文暂不讨论。什么是互斥锁?当多个线程对共享资源访问的时候,只能有一个线程可以获得该共享资源的锁,当线程A尝试获取线程B的锁时,...原创 2018-05-23 09:56:57 · 165 阅读 · 0 评论 -
内存泄漏—Android Studio 3.0 + MAT
前言android studio 3.0 推出的profile由于本人不知道究竟能否独立完成内存泄漏的排查工作,所以本文还是结合了MAT来进行内存泄漏排查。本文的示例代码时基于之前俩篇分析博客,建议先看看: profile工具使用入门: 非静态内部类持有外部类引用引起的内存泄漏分析预备工作MAT安装MAT in Eclipse MAT单体安装分析首...原创 2018-05-16 11:47:17 · 2401 阅读 · 0 评论 -
Adnroid文件存储路径getFilesDir()与getExternalFilesDir的区别
作为一个开发者,我们经常需要通过缓存一些文件到SD卡中,常见的方式就是,通过:File sdCard = Environment.getExternalStorageDirectory();获取SD卡根目录,然后自定义文件/文件名进行文件存储.这样做法的结果就是,当手机安装了大量的app时,SD卡根目录会迅速变得杂乱不堪。并且在API 6.0之后,根目录文件存储是需要用转载 2017-11-28 14:18:35 · 4039 阅读 · 0 评论 -
传参约束
@Retention(RetentionPolicy.SOURCE)@IntDef({ALARM_SOURCE.ALARM_SOURCE_ECG, ALARM_SOURCE.ALARM_SOURCE_RESP, ALARM_SOURCE.ALARM_SOURCE_TEMP})public @interface ALARM_SOURCE { /**原创 2017-11-22 16:45:34 · 191 阅读 · 0 评论 -
九宫格手势锁实现思路
0.前言大致流程如下: - 1:找点 - 2:画圆(圆的状态,笔,API,逻辑,伪代码) - 3:焦点(焦点基本分析,获取焦点的依据:俩点间距离公式,焦点列表) - 4:画线(基本分析:俩点一线,新增一支笔,线的状态,画线) - 5:密码校验,Touch事件处理 1.找点一张示意图: 图上代表横屏竖屏。将宽高分别除以4,便可得到每个点的x,y坐标,当然这个方式比较笨拙,还可以套用这个公原创 2017-10-05 17:24:29 · 1022 阅读 · 0 评论 -
Dialog风格的Activity
<style name="dialogstyle" parent="AppTheme"> <!--设置dialog的背景--> <item name="android:windowBackground">@android:color/transparent</item> <!--设置Dialog的windowFrame框为无--> <i原创 2017-06-27 14:38:58 · 722 阅读 · 0 评论 -
AutoLabelUi使用简记
转载请注明出处: http://blog.csdn.net/user11223344abc?viewmode=contents 出自【蛟-blog】本文只讨论如何使用,有兴趣朋友的可以去原作者项目地址下看看这里贴出项目地址: https://github.com/DavidPizarro/AutoLabelUI布局<?xml version="1.0" encoding="utf-8原创 2017-07-10 00:06:09 · 618 阅读 · 0 评论 -
MZBannerView使用总结
转载请注明出处: http://blog.csdn.net/user11223344abc?viewmode=contents 出自【蛟-blog】最近做项目,用了开源项目MZBannerView,是一个仿魅族的banner,感觉挺不错的,记录一下使用方式。 具体的如何引入可以去该链接看: 项目地址:https://github.com/pinguo-zhouwei/MZBanne原创 2017-07-09 16:55:28 · 6110 阅读 · 0 评论 -
Can't create handler inside thread that has not called Looper.prepare()
新启线程内直接操作UI(Toast / Dialog 等)会发生这样的情况,因为Looper是需要初始化的,Main线程内不需要初始化是因为每个Main线程一开始的时候便在底层创建了mainLooper(ActivityThread),具体原理后面再专门写一篇补上,现在简单的记录下解决办法:Looper.prepare();ToastShow(App.getInstance()...原创 2017-07-03 13:09:50 · 199 阅读 · 0 评论 -
You need to use a Theme.AppCompat theme (or descendant) with this activity。
转自:http://www.cnblogs.com/jshen/p/3996071.html报错如下:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test2/com.example.test2.MainActivity}: java.lang.IllegalStateEx转载 2017-06-28 14:34:36 · 193 阅读 · 0 评论 -
PhotoView + ViewPager,pointerIndex out of range异常解决
转载请注明出处: http://blog.csdn.net/user11223344abc?viewmode=contents 出自【蛟-blog】这个bug是个系统抛出的bug,涉及到多点触控的。不好找规律,要复现这个bug滑动缩放的时候,可以先抬起一个手指。具体原理以后有时间再探究。这里直接给出解决方法:将原有的ViewPager更换为自定义Viewpager,区别自己看代码把,就原创 2017-06-28 13:17:24 · 770 阅读 · 0 评论 -
WebSettings
转自:http://blog.csdn.net/a2241076850/article/details/52983939史上最全的WebSettings说明WebSettings webSettings=webView.getSettings(); setAllowContentAccess (boolean allow) 是否允许在WebView中访问内容URL(Cont...转载 2017-07-14 17:41:13 · 272 阅读 · 0 评论 -
ScrollView嵌套ListView高度问题
转载请注明出处: http://blog.csdn.net/user11223344abc?viewmode=contents 出自【蛟-blog】当ScrollView嵌套ListView时出现Listview只显示一行的问题。使用这个方法重新计算listview的长度。工具方法: public static void setListViewHeightBasedOnChildren原创 2017-07-13 13:39:54 · 356 阅读 · 0 评论 -
java时间差计算
转载请注明出处: http://blog.csdn.net/user11223344abc?viewmode=contents 出自【蛟-blog】直接上代码了,不过我还是简单说下这段代码的使用场景: 这是我在做一个订单详情的时候需要用到的一个方法。具体需求是: - 服务器会返回给我订单的创建时间 - 然后有一个需求前提就是说,当一个订单被创建后48小时不付款的话这个订单就自动取原创 2017-07-12 23:44:43 · 385 阅读 · 0 评论 -
svn清除本地缓存
切换svn账号时需要用到:右键桌面TortoiseSVN > settings > Saved Data > clear / clear all原创 2017-07-03 12:40:35 · 18726 阅读 · 0 评论 -
Intent传递数据
转载请注明出处: http://blog.csdn.net/user11223344abc?viewmode=contents 出自【蛟-blog】Intent传递基本数据类型(以String为例)存入intent.putExtra("par","hello");取出String str = data.getStringExtra("par");Intent 传递对象首先这个对象必须要原创 2017-07-11 12:44:03 · 328 阅读 · 0 评论 -
数据去重复
转载请注明出处: http://blog.csdn.net/user11223344abc?viewmode=contents 出自【蛟-blog】1.只有一个集合的情况下,自身去重复(1),遍历这种情况要求被去重复的元素对象复写equals方法 注意:这儿我复写了比较器方法Comparable和去重无关 这儿是根据搜索的字符串来去重public class SearchBean原创 2017-07-11 11:52:06 · 323 阅读 · 0 评论 -
6.0+运行时权限申请
转载请注明出处: http://blog.csdn.net/user11223344abc?viewmode=contents 出自【蛟-blog】0.介绍运行时权限申请,只针对6.0+的手机。也就是说6.0以下的手机是不会有这要求的。当申请发出之后会出现下图: 本文就以打电话为例。1.一点点的考虑啥时候申请申请之后被拒绝怎么办权限检测下面直接贴出API,有了API,相信原创 2017-07-23 17:34:12 · 234 阅读 · 0 评论 -
友盟和微信支付sdk的冲突问题
会报这个错: 没谁了,坑死我了。 看图吧,这二者注掉一个就行了。原创 2017-07-24 12:53:02 · 888 阅读 · 0 评论 -
一个可拖动的View
转载请注明出处: http://blog.csdn.net/user11223344abc?viewmode=contents 出自【蛟-blog】基本思路:本文主要突出是“可拖拽”这个中心。涉及到2个点:1:(onTouchEvent/margin)位置的变化与确定:请想象一个空白的屏幕上一个控件的位置有一侧margin变了,它的位置也会跟着变。具体的实现是通过复写onTouch原创 2017-07-22 20:28:16 · 357 阅读 · 0 评论 -
代码混淆
代码混淆下面是常见的的proguard.cfg配置项:# 指定代码的压缩级别-optimizationpasses 5# 包明不混合大小写-dontusemixedcaseclassnames# 不去忽略非公共的库类-dontskipnonpubliclibraryclasses # 优化不优化输入的类文件-dontoptimize # 预校验-dontpreve转载 2017-10-03 12:59:41 · 185 阅读 · 0 评论 -
再按一次退出程序code
Activity;//用于监听返回键,再按一次退 long waitTime = 3500; long touchTime = 0; @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK...原创 2017-10-07 08:27:41 · 1202 阅读 · 0 评论