自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 问答 (10)
  • 收藏
  • 关注

原创 注解一:

@DocumentedIndicates that annotations with a type are to be documented by javadoc and similar tools by default. This type should be used to annotate the declarations of types whose annotations affect...

2021-02-26 12:03:38 119

原创 Room

文章目录1.是什么2.有什么用3.怎么用1.是什么Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。2.有什么用处理大量结构化数据的应用可极大地受益于在本地保留这些数据。最常见的用例是缓存相关数据。这样,当设备无法访问网络时,用户仍可在离线状态下浏览相应内容。设备重新连接到网络后,用户发起的所有内容更改都会同步到服务器。3.怎么用Room 包含 3 个主要组件:数据库:包含数据库持有者,并作为应用已保留的持久关系型数据的底层

2021-02-24 15:18:59 93 1

原创 ViewModel

ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。ViewModel 存在的时间范围是从您首次请求 ViewModel 直到 Activity 完成并销毁或者在 Fragment 分离时。优势:解耦:让视图(activity,fragment)分离出数据,更专注于展示数据和用户交互,数据处理则在viewmodle中完成。数据不丢失:viewmodel可以解决如屏幕旋转导致瞬态界面相关数据的丢失或者onSave

2021-02-24 14:28:01 309

原创 BottomNavigationBar 去除阴影

BottomNavigationBar 做透明背景时出现倒梯形阴影定位到BottomNavigationBar 源码223行直接去除即可if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { mBottomNavigationBar.setOutlineProvider(null); }...

2020-08-28 17:37:03 791

原创 Android 10 文件访问受限

Android 10 文件访问受限<manifest ... > <!-- This attribute is "false" by default on apps targeting Android 10 or higher. --> <application android:requestLegacyExternalStorage="true" > ... </application&g

2020-08-28 15:41:09 1695

原创 Android--ADB常用命令

无线连接查看应用列表安装 APK清除应用数据与缓存查看前台 Activity查看应用详细信息Activity发送广播模拟按键/输入发送广播发送广播发送广1播无线连接通过 IP 地址连接设备。adb connect <device-ip-address>断开无线连接adb disconnect <device-ip-address>查看应...

2019-06-25 10:53:45 123

原创 jdk版本控制--降低jdk版本

jdk版本控制–降低jdk版本一:遇到的问题:You are attempting to build with an unsupported JDK************************************************************ You are attempting to build with an unsupported JDK. You u...

2018-12-03 14:33:37 8129

原创 android 9(P):Behavior changes

Android 9 对应 api 28Behavior changesPower management 电源管理Android 9 引入了新的功能来改进设备的电源管理。这些变化,以及以前版本中已经出现的特性,有助于确保系统资源被分配给最需要它们的应用程序。 电源管理功能分为两类:App standby buckets (应用待机集)根据用户的使用模式,该系统限制了应用程序对C...

2018-08-10 15:34:20 266

原创 Kotlin 基础三:接口

接口跟java一样,接口是用interface关键字定义interface MyInterface { fun show() fun show2(){ // 方法体 }}//实现接口class InterfaceImp : MyInterface { override fun show() { }}覆盖冲突i...

2018-08-09 11:07:02 110

原创 Kotlin 基础一:关键字

kotlin语言中文站: http://kotlinlang.org/关键字 字段 说明 abstract 抽象声明,被标注对象默认是open annotation 声明一个注解类 by 委托 class 声明一个类 companion 声明一个伴生对象 const 将属性标记为编译期常量 c...

2018-08-07 15:29:33 144

原创 Kotlin 基础二:类和继承

类和继承类Kotlin 中使用关键字 class 声明类class Person {...}构造函数一个类可以有一个主构造函数和一个或多个次构造函数 次构造函数:前缀有 constructor的,可以直接委托或者通过别的次构造函数间接委托。委托到同一个类的另一个构造函数用 this 关键字即可:class Person(var name: String) ...

2018-08-07 10:37:42 172

原创 clone()说明和使用

/**... * Invoking Object's clone method on an instance that does not * implement the &lt;code&gt;Cloneable&lt;/code&gt; interface results in the * exception * &lt;code&gt;CloneNotSupportedEx...

2018-07-21 00:47:12 300

原创 Android各版本对应的SDK版本

平台版本 SDK版本 版本名称 Android 8.0 26 Oreo Android 7.1 25 Nougat Android 7.0 24 Nougat Android 6.0 23 Marshmallow Android 5.1 22 Lollipop Android 5.0 21 L

2018-07-18 18:10:47 8228

原创 Android8 新特性

Android8 名称为:Android Oreo(奥利奥),api26奥利奥版安卓的聚焦重点是电池续航能力、速度和安全,让用户更好地控制各种应用程序。 1.通知中心用户在通知界面可以发现顶部的快捷键有了更充裕的空间,并且根据网络大数据的用户使用频繁度调整了这几个快捷键的顺序;并且长按推送消息可以看到一个开关,操作它可以开启和关闭这个该应用的未来所有通知。 2.设置菜单...

2018-07-18 18:10:05 323

原创 AndroidStudio 快捷键

最常用快捷键1.Ctrl+E 可以显示最近编辑的文件列表 2.Shift+Click 可以关闭文件 3.Ctrl+[或] 可以跳到大括号的开头结尾 4.Ctrl+Shift+Backspace 可以跳转到上次编辑的地方 5.Ctrl+F12 可以显示当前文件的结构 6.Ctrl+F7 可以查询当前元素在当前文件中的引用,然后按F3可以选择 7.Ctrl+N ...

2018-07-18 18:00:50 387

原创 ADB 命令

连接adb调试直接操作第三步,如果连接失败,按顺序操作 第一步:Android设备开启USB调试,并且通过USB线连接到电脑。 第二步:在终端执行以下命令”adb tcpip 5555“。 第三步:在终端执行以下命令”adb connect 192.168.xx.xxx“(192.168.xx.xxx为Android设备的IP地址)。此时拔出USB线,应该就可以adb通过wifi调试An...

2018-07-18 17:39:03 299

翻译 屏幕适配三 (使用)

支持多种屏幕的目标是创建一款在 Android 系统支持的通用屏幕尺寸上都可以 正常运行且显示良好的应用。使用“wrap_content”和“match_parent”为确保您的布局能够灵活地适应不同的屏幕尺寸,您应该为某些视图组件的宽度和高度使用 “wrap_content” 和 “match_parent”。 如果您使用 “wrap_content”,视图的宽度或高度将设置为使内容...

2018-07-18 17:18:02 116

翻译 屏幕适配二 (概念2)

如何支持多种屏幕确保应用布局:适应小屏幕(让用户能实际使用您的应用)已针对大屏幕优化,可以利用其他屏幕空间已同时针对横屏和竖屏方向优化屏幕尺寸的新配置限定符 (在 Android 3.2 中引入)。屏幕配置 smallestWidth限定符值 swdp示例: sw600dp sw720dp说明: 屏幕的基本尺寸,由可用屏幕区域的最小尺寸指...

2018-07-18 16:36:03 134

翻译 屏幕适配一 (概念)

术语和概念屏幕尺寸按屏幕对角测量的实际物理尺寸。为简便起见,Android 将所有实际屏幕尺寸分组为四种通用尺寸:小、 正常、大和超大。屏幕密度屏幕物理区域中的像素量;通常称为 dpi(每英寸 点数)。例如, 与“正常”或“高”密度 屏幕相比,“低”密度屏幕在给定物理区域的像素较少。为简便起见,Android 将所有屏幕密度分组为六种通用密度: 低、中、高、超高、超超高 ...

2018-07-18 15:58:06 186

翻译 databinding 介绍

一:Data Binding Library 1.官方介绍:The Data Binding Library is a support library that allows you to bind UI components in your layouts to data sourcesin your app using a declarative format rather than...

2018-07-18 11:45:57 127

原创 volatile

1、定义官方解释:A field may be declared volatile, in which case the Java Memory Model ensures that all threads see a consistent value for the variable.翻译:一个字段可以被声明为volatile,在这种情况下,Java内存模型确保所有线程都能看到...

2018-05-22 11:30:35 76

原创 Thread 、 Handler 、Looper 和 Message 之间的关系

为何用这种消息处理机制1,子线程不能修改ui界面。当 App 第一次启动的时候,Android 会同时启动一个对应的主线程(Main Thread),这个主线程就是 UI 线程,也就是 ActivityThread。UI 线程主要负责处理与 UI 相关的事件,如用户的按键点击、用户触摸屏幕以及屏幕绘图等。Android UI操作并不是线程安全的,并且这些操作必须在 UI 线程执行。现...

2018-05-18 15:22:04 172

转载 android Gradle 相关

https://www.jianshu.com/p/8b8a550246bd

2018-05-16 10:11:35 94

原创 BottomNavigationBar 图片颜色被改变

问题:当使用setActiveColorResource ,设置选中颜色的时候,图片的颜色被改变了。解决:找到BottomNavigationTab 类,继续找到 public void initialise(boolean setActiveColor) 方法。 public void initialise(boolean setActiveColor) { iconView

2017-11-28 10:25:17 1441

原创 #获取系统图片遇到的坑--Cursor空指针异常

获取系统图片遇到的坑–Cursor空指针异常Cursor 空指针异常: 小米N2测试的时候报Cursor空指针异常的错误 Uri photoUri = data.getData(); Uri photoUri = data.getData(); if (null == photoUri) { return; }

2017-11-22 14:15:28 803

原创 动态代理

一:什么是动态代理?代理类在程序运行前不存在、运行时由程序动态生成的代理方式称为动态代理。二:作用:在运行时刻动态生成代理类,可以方便对代理类的函数做统一或特殊处理而不用像静态代理方式那样需要修改每个函数。三:如何实现:1.新建委托类。 public interface Delegation { void delegationMethod1()

2017-09-13 10:36:47 144

原创 静态代理

静态代理:代理类在程序运行前已经存在的代理方式称为静态代理一言不合直接上代码示例:class A { public void method1() {}; public void method2() {}; public void method3() {};}public class B { private A a; publi

2017-09-13 10:32:32 129

空空如也

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

TA关注的人

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