- 博客(36)
- 资源 (14)
- 收藏
- 关注
转载 谷歌官方Android应用架构库——Room 持久化库
翻译自:https://developer.android.google.cn/training/data-storage/room/index.htmlRoom提供了一个SQLite之上的抽象层,使得在充分利用SQLite功能的前提下顺畅的访问数据库。对于需要处理大量结构化数据的App来说,把这些数据做本地持久化会带来很大的好处。常见的用例是缓存重要数据块。这样当设备无法连网的时候,用户...
2018-03-15 08:22:00 857
转载 Android中数据存储--采用SQLite存储数据及在SDCard中创建数据库
布局文件main.xml的代码:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_...
2018-03-06 08:10:12 517
原创 怎样在异步任务执行完成后就可以获取执行结果
我们知道创建线程的方式有两种,一种是实现Runnable接口,另一种是继承Thread,但是这两种方式都有个缺点,那就是在任务执行完成之后无法获取返回结果,那如果我们想要获取返回结果该如何实现呢?从JAVA SE 5.0开始引入了Callable和Future,通过它们构建的线程,在任务执行完成后就可以获取执行结果。我们先回顾一下java.lang.Runnable接口,就声明了run()...
2018-03-30 08:17:17 7016
翻译 Rx介绍
ReactiveX的历史ReactiveX是Reactive Extensions的缩写,一般简写为Rx,最初是LINQ的一个扩展,由微软的架构师Erik Meijer领导的团队开发,在2012年11月开源,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,Rx库支持.NET、JavaScript和C++,Rx近几年越来越流行了,现在已经支持几乎全部的流行编程语言了,...
2018-03-30 08:11:29 2506
原创 Android NestedScrolling 子View与父View之间嵌套滑动
一、概述Android在support.v4包中为大家提供了两个接口类:NestedScrollingParentNestedScrollingChild这样的嵌套滑动机制是在 Android 发布 Lollipop 之后提供的。要实现这两个接口,必需是ViewGroup的子类。二、NestedScrollingChildpublic interface NestedSc...
2018-03-26 17:00:16 705
原创 'android:attr/keyboardNavigationCluster' not found.解决办法
总的原则:compileSdkVersion >= 所用支持库的版本
2018-03-26 10:41:22 7076 1
原创 Plugin with id 'org.greenrobot.greendao' not found.怎么办?
Plugin with id 'org.greenrobot.greendao' not found.是因为没有在Project的build.gradle中配置classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'引起的。 当配置了classpath 'org.greenrobot:greendao-gradle-...
2018-03-23 08:35:35 13870 1
转载 java动态代理--一个简单的例子
1.什么是动态代理代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为两种。 静态代...
2018-03-20 08:20:27 169
原创 Java的反射机制
一、什么是class类在面向对象的世界里,万物皆对象。类是对象,类是java.lang.Class类的实例对象。另外class类只有java虚拟机才能new出来。任何一个类都是Class 类的实例对象。这实例对象有三种表达方式:public class User{}public class ClassTest{User u=new User(); //方式1: Class c1...
2018-03-16 08:55:38 171
转载 Java代理和动态代理机制分析和应用
概述代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。根据代理类的生成时间不同可以将代理分为静态代理和动态代理两种。代理模式一般涉及到的角色有4种主题接口:定义代理类和真实主题的公共对外方法,也是代理类代理真实主题的方法;真实主题:真正实现业务逻辑的类;代理类:用来代理和封装真实...
2018-03-16 08:43:33 157
转载 DexClassLoader和PathClassLoader的区别
在使用Java虚拟机时,我们经常自定义继承自ClassLoader的类加载器。然后通过defineClass方法来从一个二进制流中加载Class。而在Android中我们无法这么使用,Android中ClassLoader的defineClass方法具体是调用VMClassLoader的defineClass本地静态方法。而这个本地方法什么都没做,只是抛出了一个“UnsupportedOp...
2018-03-16 08:27:40 3384
原创 String数组转List,List转String数组
//List 转换为 String数组List<String>list=newArrayList<String>();list.add("a1");list.add("a2");String[]toBeStored=list.toArray(newString[list.size()]);for(Strings...
2018-03-16 08:20:52 25543
原创 java里一段字符串按照空格拆分,然后再按逗号拆分怎么写
publicclassSplit{publicstaticvoidmain(String[]args){Stringsss="12010,22011,32012";String[]arr=sss.split("|,");//根据“”和“,”区分System.out.println(java.u...
2018-03-16 08:19:00 5717
转载 带两个类型参数的泛型类
在泛型中,可以声明一个以上的类型参数,只需要在这些类型参数之间用逗号隔开。下面看一个简单的例子。public class TwoGen<T, V> { private T ob1; private V ob2; public TwoGen(T o1,V o2) { ob1 = o1; ...
2018-03-16 08:11:42 11590
转载 Android Room Library 简单使用
Room 的一些特点编译时 sql 语句检查。相信大家都有过 app 跑起来,执行到 db 语句的时候 crash,检查之后发现原来是 sql 语句少了一个 ) 或者其它符号之类的经历。Room 会在编译阶段检查你的 DAO 中的 sql 语句,如果写错了(包括 sql 语法错误跟表名、字段名等等错误),会直接编译失败并提醒你哪里不对。 sql 查询直接关联到 Java 对象。这个应该不用详...
2018-03-14 16:52:07 635
转载 SortedList
SortedList是什么?源码头注释如下:A Sorted list implementation that can keep items in order and also notify for changes in the list。翻译: 一个有序列表(数据集)的实现,可以保持ItemData都是有序的,并(自动)通知列表(RecyclerView)(数据集)中的更改。...
2018-03-14 12:47:48 475
转载 DiffUtil
一 概述DiffUtil是support-v7:24.2.0中的新工具类,它用来比较两个数据集,寻找出旧数据集-》新数据集的最小变化量。 说到数据集,相信大家知道它是和谁相关的了,就是我的最爱,RecyclerView。 就我使用的这几天来看,它最大的用处就是在RecyclerView刷新时,不再无脑mAdapter.notifyDataSetChanged()。 以前无脑mAdapte...
2018-03-14 12:38:15 1700
原创 ScrollView和ListView嵌套问题。
private void setListViewHeightBasedOnChildren(ListView listView) { if (listView == null) { return; } ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) ...
2018-03-13 16:17:46 162
原创 GreenDao3.2.2建立多表之间的关联
在上一篇文章GreenDao保存List<String>类型数据中,介绍了如何使用GreenDao保存List<String>类型的数据, 但是在实际开发中经常会遇到List的泛型并不是String类型的,而是另外一种自定义的Bean类类型。 比如,在上一篇文章中的User代表一个用户,但是在每一个用户中可能会保存一个订单的集合–List. 那么这种情况就需要创建多个...
2018-03-13 15:28:00 4186 2
原创 GreenDao3.2.2保存List<String>类型数据
在Android框架之GreenDao3.2.2的使用中,介绍了如何简单使用GreenDao,并创建了User类来保存一些简单的数据。 但是假如在User中有一种List类型的数据也需要保存到数据库中,该如何处理呢? 答案很简单,可以转换一下思路,遍历List数据,然后将所有的String对象都append到一个StringBuilder中,然后保存在数据库中即可。 事实上,Gree...
2018-03-13 15:19:41 2723
转载 详解java类的生命周期
引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题,权当抛砖引玉,希望对在这个问题上有疑惑的朋友有所帮助,...
2018-03-09 08:14:15 337 1
原创 java 获取本机的默认编码
System.out.println("本机的默认编码====="+System.getProperty("file.encoding"));
2018-03-09 08:13:12 2020
转载 Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
1、 概述Handler 、 Looper 、Message 这三者都与Android异步消息处理线程相关的概念。那么什么叫异步消息处理线程呢?异步消息处理线程启动后会进入一个无限的循环体之中,每循环一次,从其内部的消息队列中取出一个消息,然后回调相应的消息处理函数,执行完成一个消息后则继续循环。若消息队列为空,线程则会阻塞等待。说了这一堆,那么和Handler 、 Looper 、Message...
2018-03-08 09:45:16 134
转载 Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
1、概述一般大量图片的加载,比如GridView实现手机的相册功能,一般会用到LruCache,线程池,任务队列等;那么异步消息处理可以用哪呢?1、用于UI线程当Bitmap加载完成后更新ImageView2、在图片加载类初始化时,我们会在一个子线程中维护一个Loop实例,当然子线程中也就有了MessageQueue,Looper会一直在那loop停着等待消息的到达,当有消息到达时,从任务队列按照...
2018-03-08 09:31:49 147
转载 Android HandlerThread 完全解析
转载出处: http://blog.csdn.net/lmj623565791/article/details/47079737; 本文出自:【张鸿洋的博客】 1、概述话说最近股市变动不变,也成了热火朝天的话题。不知道大家有没有考虑做个实时更新股市数据的app呢?假设我们要做一个股市数据实时更新的app,我们可以在网上找个第三方的股市数据接口,然后在我们的app中每隔1...
2018-03-08 09:21:55 135
转载 Android IntentService完全解析 当Service遇到Handler
转载出处: http://blog.csdn.net/lmj623565791/article/details/47143563; 本文出自:【张鸿洋的博客】一 概述大家都清楚,在Android的开发中,凡是遇到耗时的操作尽可能的会交给Service去做,比如我们上传多张图,上传的过程用户可能将应用置于后台,然后干别的去了,我们的Activity就很可能会被杀死,所以可以考虑将上传操作交给Serv...
2018-03-08 09:07:53 283
转载 Android 音频焦点(Audio Focus)
引子说 Audio Focus 前先说个很简单需求:来电时暂停正在播放的音乐,电话结束时恢复播放。看到这个需求,第一反应肯定是:监听用户来电状态,作相应操作。这里不多做介绍,这样做有个不好的地方就是需要隐私权限!这样做一点也不优雅。后来搜索时看到一篇分析文章:Android来电时停止音乐播放的流程(顺便说一嘴,这篇转载居然不注明出处!!)。文章里的分析很明确的指出,系统在框架层就很好的...
2018-03-08 08:55:40 7200
转载 android里面layer-list中的inset和clip到底有什么作用
Inset Drawable:用于通过指定的间距把图片插入到XML中,它在View需要比自身小的背景时常用。有些像padding的作用。例子: 第一步:drawable文件中建立inset_drawable.xml <?xml version="1.0" encoding="utf-8"?> <inset xmlns:android="http://schema...
2018-03-08 08:49:45 3673
转载 如何向一个Fragment传递参数---setArguments方法的介绍
在我们平常开发中经常会用到Fragment,当我们使用Fragment时一般是通过new Fragment的构造方法来实现,如果我问你怎么向一个Fragment传递参数,你是不是会首先想到通过构造方法,当面试被问到这个问题的时候我也是这么想的,后来发现自己错了,现在给大家讲一下究竟该怎么做。首先我们看构造方法这种方式为什么不行,根据Android文档说明,当一个fragment重新创建的时候,系统...
2018-03-08 08:37:55 1000
转载 ListView嵌套GridView时遇到的一些坑
需求是用ListView来嵌套GridView来显示数据,GridView是用来显示图片的。照着常规方法将GridView作为ListView中Item布局的一部分来显示,给GridView设置numColumns=3,这里设置了九张图片,按道理分3行显示,但是运行程序后只显示了一行数据,也就是3行图片。试着改了改GridView的高度,木有任何作用。why?由于ListView和GridVi...
2018-03-08 08:26:38 1345
转载 Android Scroller完全解析,关于Scroller你所需知道的一切
代码下载地址:https://github.com/suyimin/ScrollerDemo,欢迎Star!Scroller是一个专门用于处理滚动效果的工具类,可能在大多数情况下,我们直接使用Scroller的场景并不多,但是很多大家所熟知的控件在内部都是使用Scroller来实现的,如ViewPager、ListView等。而如果能够把Scroller的用法熟练掌握的话,我们自己也可以轻松实...
2018-03-07 15:27:20 602
转载 Android 子线程中操作UI
开发Android的都知道,自2.2之后,谷歌工程师规定了子线程不允许更新UI,原因说起来也简单,可以想一想,如果多个子线程同时操作UI,那么该听谁的呢,所以,现在在子线程中写关于操作UI的代码,运行就回报异常。我们都知道耗时的操作,例如数据库读写大量数据,网络请求,这些都比较耗时间,一般情况下都会放入子线程里面操作,这样不会阻塞UI。但是每次当我们操作完这些数据之后,就要更新UI的数据,但是...
2018-03-06 20:21:40 464
转载 Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
今天我们将继续上次未完成的话题,从源码的角度分析ViewGroup的事件分发。首先我们来探讨一下,什么是ViewGroup?它和普通的View有什么区别?顾名思义,ViewGroup就是一组View的集合,它包含很多的子View和子VewGroup,是Android中所有布局的父类或间接父类,像LinearLayout、RelativeLayout等都是继承自ViewGroup的。但ViewGro...
2018-03-06 09:34:10 147
转载 Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
转载自:http://blog.csdn.net/guolin_blog/article/details/9097463那我们现在就开始吧!比如说你当前有一个非常简单的项目,只有一个Activity,并且Activity中只有一个按钮。你可能已经知道,如果想要给这个按钮注册一个点击事件,只需要调用:button.setOnClickListener(new OnClickListener() { ...
2018-03-06 08:59:51 174
转载 ListView复用和优化之多布局详解
前言在上一篇文章中,我已经非常详细的阐述了ListView的复用原理和几个大家不太明白的地方.也同时重现了复用的问题并告诉大家如何去解决.如果你没有看上一篇,请先移步,这篇基于上一篇的知识继续讲解ListView中多布局是个什么原理。实现联系人列表的展现形式先随便放一个联系人列表的效果图,博主随便找了一张图给大家看看效果先我们可以看到,这里肯定是一个列表来实现的,如...
2018-03-05 08:38:22 192
转载 ListView复用和优化详解
前言我们每一个Android开发人员对ListView的使用肯定是很熟悉的,然而多少人能真正的懂ListView的缓存机制呢,说白了就是ListView为了提高效率,而内部实现的一种优化,牺牲一点内存。而这种优化就需要复用ItemView(也就是item对应的View).那么下面楼主来对ListView和RecyclerView的item复用问题做一个深入的讲解先来一张大家学习的时候都遇到...
2018-03-05 08:17:27 238
安卓 OpenGL ES 2.0 完全入门(一):基本概念和 hello world.docx
2019-08-25
OkHttp使用教程
2015-12-18
IDirectDraw7的使用
2014-10-14
DirectDraw7编程基础
2014-10-14
MTK短信编码.docx
2012-12-06
刷机原理04 Android系统Recovery模式的工作原理.wps
2012-10-24
刷机原理03 Android系统的三种启动模式.wps
2012-10-24
刷机原理02 Android升级包update.zip的生成过程分析.wps
2012-10-24
刷机原理01 update.zip包目录结构
2012-10-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人