- 博客(33)
- 收藏
- 关注
原创 Google 架构之Room数据库基本使用
文章目录Room 主要组成包括三个部分使用具体示例创建实体类创建Dao创建数据库(Database)Room提供了一个基于SQLite的抽象层,以便在利用SQLite的全部功能的同时实现更强大的数据库访问。Room可帮助您在运行应用程序的设备上创建应用程序数据的缓存。此缓存作为应用程序的唯一事实来源,允许用户在应用程序中查看关键信息的一致副本,无论用户是否具有网络连接。Room 主要组成包括...
2019-07-03 19:06:15 2758
原创 【深入理解Java虚拟机】学习笔记 ----- 垃圾回收算法
文章目录对象已死?引用计数法可达性分析算法垃圾回收算法标记-清除(Mark-Sweep)算法复制算法 (Copying)标记-整理(Mark-Compact)算法分代收集算法在Java虚拟机运行时区域的各个部分中,程序计数器,虚拟机栈,本地方法栈声明周期与生成对应线程的生命周期:栈中的栈帧都是随着方法的进入和退出而执行者出栈和入栈操作。每个栈帧的内存基本上是在类结构确定下来时就已知,所以这个几个...
2019-06-17 21:26:19 286
原创 【深入理解Java虚拟机】学习笔记 ----- Java对象的创建布局以及访问
文章目录对象的创建内存分配指针碰撞空闲列表线程安全采用 CAS配上失败重试方式保证更新操作的原子性本地线程缓存区(TLAB)初始化初始化零值对对象设置对象的内存布局对象头实例数据对齐填充对象的访问使用句柄直接指针上篇文章Java虚拟机运行时数据区简单介绍了Java虚拟机运行时数据区之后,我们大致了解到了虚拟机内存的概况,下面我们就一起看一下对象的创建,布局以及访问过程。对象的创建Java是一...
2019-06-09 11:04:25 261 1
原创 HashMap和HashTable区别
文章目录HashMap和HashTable 区别继承对象不同初始化和扩容数据不同线程安全遍历方式不同对于null的不同处理HashMap和HashTable 区别继承对象不同HashMappublic class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, S...
2019-06-04 21:40:00 304
原创 【深入理解Java虚拟机】学习笔记 ----- Java虚拟机运行时数据区
Java虚拟机运行时数据区Java 虚拟机在执行Java程序过程中会把它管理的内存划分为若干个不同的数据区域。这些区域有着各自的用途,以及创建和销毁时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束建立和销毁。线程私有:程序计数器,本地方法栈,虚拟机栈线程隔离:方法区,堆区线程私有数据区程序计数器程序计数器是一块较小的内存空间,它的作用可以看作是...
2019-06-03 15:10:09 271
原创 ConstraintLayout使用详解
文章目录为什么要用?ConstraintLayout基本使用Relative positioning约束 :view 在垂直方向 ,或在水平方向,相对于其他view 的关系(相互的)相关属性示例 :Centering and MarginsMargins(偏移)margin with gone居中偏移占比 (Bias)ChainsChain StyleChain headsChain mar...
2019-04-08 21:55:36 454
原创 kotlin 中 Collection 相关操作
filterfilter 函数让您可以过滤集合。它将过滤谓词作为lambda参数。谓词应用于每个元素。使谓词为true的元素将在结果集合中返回。简单来说就是在filter 函数中设置你需要集合满足的条件,然后返回满足条件的元素。eg:fun filterTest() { val numbers = listOf(1, 2, 3, 4, 5, 6, -1, -3, -4) ...
2019-03-20 22:38:21 1473
原创 Jenkins android集成遇到的问题
使用Jenkins持续集成时运行遇到的问题总结问题一java.io.IOException: Cannot run program "gradle" (in directory "/Users/Shared/Jenkins/Home/jobs/test/workspace"): error=2, No such file or directory at java.lang.Proce...
2019-03-10 14:10:31 533
原创 Kotlin 中 object 关键字用法
Kotlin中的类和对象的工作方式与大多数面向对象语言中的相同:通常,定义一个类,然后创建该类的多个实例:import java.util.Randomclass LuckDispatcher { //1 fun getNumber() { //2 var objRandom = Random() println(objRandom.nex...
2019-01-24 15:04:17 1233
原创 Kotlin 标准库中run、let、also、apply、with函数的用法和区别
run 函数定义:inline fun &lt;R&gt; run(block: () -&gt; R): R //1Calls the specified function block and returns its result.inline fun &lt;T, R&gt; T.run(block: T.() -&gt; R): R //2Calls th...
2019-01-16 12:21:39 595
原创 适配器模式
适配器模式顾名思义,适配器模式的设计是用来解决不适配(兼容)问题的。例如:电脑手机充电器,以及变压器 等电源适配器。 用来适配生活常用电压(220v) 和 电器使用电压(!=220v)适配器模式的概述:与电源适配器相似,适配器模式中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类。适配器的实现就是把客户类的请求转化为对适配者的相...
2018-11-16 23:43:15 149
原创 C# 学习之BinaryWriter 和 BinaryReader
C# BinaryWriter类用于将二进制信息写入流中。它在System.IO命名空间中找到。它还支持以特定编码编写字符串。C# BinaryWriter示例using System; using System.IO; namespace BinaryWriterExample { class Program { static void...
2018-11-11 16:13:09 4242 1
原创 HTTP 协议的背景及由来
万维网(www)概述:**万维网(World Wide Web)**并不是一个某种特殊的计算机网络。 万维网是一个大规模的联机式的信息储藏所。万维网使用链接的方法能非常方便的从因特网上的一个站点访问领完一个站点(就是所谓的”链接另外一个站点“)从而主动的获取丰富的信息。工作方式:以客户-服务器方式工作。客户程序想服务器程序发出请求,服务器程序想客户端返回客户索要的万维网文档。同时使用...
2018-11-07 23:34:06 1575
原创 单一原则
作用:单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。定义:单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。单一职责原则告诉我们:一个类不能太“累”(不能做太多的事情)! 在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复...
2018-10-10 23:42:45 3972
原创 Android 根据图片资源文件名获取资源Id 的方法
一 .第一种方法 name 为文件名(不带后缀名) . private int getDrawableRes(Context context, String name) { String packageName = context.getPackageName(); return context.getResources().getIdentifier(na...
2018-09-26 23:39:33 1884 3
原创 Room 数据库升级问题 java.lang.IllegalStateException: Migration didn't properly handle xxx
Migration升级数据库有时需要更改现有的数据库架构。如果我们将添加,更新或删除数据库中的某些字段然后运行我们的应用程序,我们将看到来自Room的异常:java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you’ve changed schema but forgot ...
2018-09-06 23:31:53 8740 1
原创 Lottie 动画库使用
Lottie基本使用xmls常用属性 app:lottie_autoPlay="false" //自动播放 相当于 playAnimation()app:lottie_fileName="lottiefiles.com - ATM.json"//设置动画文件 相当于setAnimation("xx.json") app:lottie_loop="true" // loop...
2018-08-21 23:51:50 1657
原创 WebView 禁止上下左右滑动
最近做项目需要使用到webview加载网页,需要的内容都在网页的最上方部分,但webview 加载的时候会把网页下面空白区域页加载进来,滑动上去就看不到需要的部分了, 刚开始想到两种解决思路: 1.通过设置网页的高度为所需要内容的高度.2.通过对webview 设置.第一种:通过设置网页的高度为所需要内容的高度.先贴出html 中的内容:<body> &...
2018-08-01 20:56:34 6305
原创 MediaScannerConnection 刷新媒体库
MediaScannerConnectionMediaScannerConnection 作用是为应用提供一个媒体扫描服务,当有新创建或者下载的文件时,会从该文件读取元数据并将该文件添加到媒体中去。当我们添加一个文件的时候,我们需要刷新媒体库才能立即找得到添加文件,MediaScannerConnection可以为我们解决这一问题。那么我们就来看看怎么使用MediaScannerCon...
2018-04-16 19:01:42 8500 1
原创 SoundPool基本用法
基本概念最近在做一个音乐相关的项目,接触到了SoundPool,使用其来播放音乐。SoundPool 顾名思义是声音的池子。看看下面SoundPool官方文档的解释:&lt;!--soundpool 用来管理和播放音频文件的--&gt;The SoundPool class manages and plays audio resources for applications.A ...
2018-04-13 23:21:20 6021
原创 配置方法数超过64k的解决办法
https://developer.android.com/studio/build/multidex.html
2017-04-13 23:21:14 1357
原创 初始化NavigationView HeaderView中控件
问题在对NavigationView headerview中的控件进行设置时,直接在Activity中通过findViewById方式进行获取,出现空指针。 解决办法1. 首先获取到NavigationView 对象,通过getHeaderView(int index)方法得到headerView, 然后再通过findViewById获取其中的控件进行相关设置。 一般情况下index 为
2017-04-12 00:34:50 842
原创 Volley框架的使用
Volley框架:volley的特性:volley适合快速,简单的请求(Json对象,图片加载)1.JSON,图像等的异步下载;2.网络请求的排序(scheduling)3.网络请求的优先级处理4.缓存5.多级别取消请求6.和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)1.StringRequest 加载网络数据的步
2016-10-08 08:00:24 291
转载 三步解决帧动画图片过多造成的OOM
主要三个步骤:说明:我只测试了63张,蛮好用,推荐给大家1.首先我们导入一个我们需要的 commons-io-1.4.jar2.新建一个 工具类MyAnimationDrawable.Java ()package com.example.frame.demo;import java.io.IOException; import java.util.Ar
2016-09-30 08:41:01 1258
转载 使用webview 加载图片
【IT168技术】在本教程中,我们将一步步学习如何使用Android中的WebView控件去展现图片,并且进行相关的参数设置,也会学习各种将图片导入到WebView的参数,包括从其他web站点加载图片,以及从移动设备中和应用的目录中加载图片。本文的阅读对象为有初级Android编程经验的开发者,本文的代码可以在如下地址下载: http://tuts-authors.s3.amazonaw
2016-09-18 23:03:55 1212
转载 简单技巧写出侧滑菜单
先来看个侧滑菜单效果: 1.png (43.28 KB, 下载次数: 12)下载附件 保存到相册2015-1-26 10:19 上传上面分别为:初始状态->滑动中->松开打开菜单你造吗?看完本文章,写这种侧滑菜单,so easy for you!你造吗?其实写这个侧滑菜单,只需要10行
2016-09-18 22:27:46 265
原创 网络访问 URL,HttpURLConnection及 HttpClient:
URL 统一资源定位器url访问的格式:网络协议类型(http)+主机ip(localhost或者172.168.20.2(根据具体情况而定))+端口号(例如8080)+服务器上的具体资源路径(myweb/zhuce.html)String path="http://localhost:8080/myweb/zhuce.html";使用url访问服务器时:1
2016-09-17 15:13:47 459
转载 获取屏幕的宽度和长度
android 获取屏幕高度和宽度 的方法 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即可获取屏幕的尺寸。 在一个Activity的onCreate方法中,写入如下代码:[java] view plain copy print
2016-09-16 16:12:03 714
原创 使用Tomcat访问web服务器
Tomcat 相关知识目录:-bin目录存放服务器的启动程序 -config目录存放服务器的配置文件,不能对该文件夹的文件内容随意的更改 -lib存放服务器的库文件 -logs存放服务器的运行日志信息 -temp存放服务器在运行时生成的临时文件 -webapps目录:部署运行在web服务器端的web项目(docs,manager
2016-09-12 08:32:14 616
原创 通讯录项目有关总结
功能模块:联系人 通话记录 拨打电话 短信聊天1.联系人管理涉及的表Contacts 联系人表 一条记录记录一个联系人信息 与raw-contacts是一对多的关系Raw-contacts 联系人的账户信息一个raw-contacts有多种类型的数据对应多种data表Data 联系人的详细信息Mimetype 存储数据的类型 类型的对照表2.实现友录
2016-09-12 08:26:27 1291
转载 SparryArray<E>的基本方法
SparseArray一。。从构造方法我们可以看出,它和一般的List一样,可以预先设置容器大小,默认的大小是10public SparseArray() { this(10); }public SparseArray(int initialCapacity) { }二。。它有两个方法可以添加键值对public void put(int key,
2016-09-01 22:32:16 1114
翻译 动画相关总结
动画相关:1.补间动画无需逐一定义每一帧,只要定义开始、结束的帧,和指定动画持续时间。补间动画有4种(均为Animation抽象类子类):AlphaAnimation(透明度,0~1)ScaleAnimation(大小缩放,X、Y轴缩放,还包括缩放中心pivotX、pivotY)TranslationAnimation(位移,X、Y轴位移)RotateAni
2016-08-31 22:56:16 331
转载 android中的数据存储
Android数据存储五种方式总结本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据下面详细讲解这五种方式的特点第一种:
2016-08-15 22:24:04 261
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人