自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 Android SystemProperties

1、Android SystemProperties简介Systemproperties类在android.os下,但这个类是隐藏的, 上层程序开发无法直接使用。其实用java的反射机制是可以使用这个类。何谓java反射机制,请自行研究学习,在此不做介绍,放到后续文章中。用JNI 的方式,可以绕过Systemproperties这个类,直接本地调用来实现创建、获取及修改系统属性。在此也不做介绍,也放到后续文章中。这篇文章主要介绍android系统属性的命名方式:创建与修改android属性用

2021-09-23 13:43:43 1710

原创 Android 11 中的软件包可见性和数据访问审核

Android 11 中的软件包可见性Android 11 更改了应用查询用户已在设备上安装的其他应用以及与之交互的方式。使用新的<queries>元素,应用可以定义一组自身可访问的其他应用。通过告知系统应向您的应用显示哪些其他应用,此元素有助于鼓励最小权限原则。此外,此元素还可帮助 Google Play 等应用商店评估应用为用户提供的隐私权和安全性。如果应用以 Android 11 为目标平台,您可能需要在应用的清单文件中添加<queries>元素。在<qu...

2021-09-15 21:49:37 1308

原创 Json解析

InputStream open = getAssets().open("Activity.json");ByteArrayOutputStream stream = new ByteArrayOutputStream();byte[] arr = new byte[1024];int length;while ((length = open.read(arr, 0, arr.length)) != -1) { stream.write(arr, 0, length);}s = new.

2021-08-16 18:00:21 139

原创 应用与HAl进行交互

Android应用调用Hal层,底层都是通过binder实现,方式1、通过framework框架与native交互,从而和hal层进行交互主要方式为注册系统服务,通过getSystemService(test)获取自定义系统服务,test通过注册jni和native交互,调用Hidl Service 从而和hal进行交互方式2、应用通过HIDL和hal进行交互(如下例子)自己实现jni模块,在应用内通过System.load(“test.so”),和hal进行交互方式3、应用通过jni直

2021-08-11 11:31:09 826

原创 Android加载三方jar包和添加动态类库

File file =new File("system/framework/com.fingerprints.common.extension.jar");DexClassLoader dexClassLoader = new DexClassLoader(file.getAbsolutePath(),getFilesDir().getAbsolutePath(),null,this.getClassLoader());Class<?> aClass1 = dexClassLoader.l.

2021-08-11 10:55:13 219

原创 BitMap加载Res资源报空指针异常

R.mipmap.ic_launcher是一个vector图片,此代码在4.4上运行正常,但在5.0以上的系统会出现空指针,原因在于此本来方法Bitmap.createBitmap()不能将vector转化为bitmap,而apk编译时为了向下兼容,会根据vector生产相应的png,而4.4的系统运行此代码时其实用的是png资源。这就是为什么5.0以上会报错,而4.4不会的原因Drawable drawable = getDrawable(R.drawable.ic_launcher_backgro

2021-08-11 10:54:17 257

原创 RecyclerView

1、实现ListViewpackage com.xingin.recyclerviewtest;import androidx.annotation.NonNull;import androidx.appcompat.app.AppCompatActivity;import androidx.recyclerview.widget.LinearLayoutManager;import androidx.recyclerview.widget.RecyclerView;import a

2021-08-05 22:25:01 81

原创 MediaPlayer

1)获得MediaPlayer实例:可以直接new或者调用create方法创建:MediaPlayer mp = new MediaPlayer();MediaPlayer mp = MediaPlayer.create(this, R.raw.test); //无需再调用setDataSource2)设置播放文件://①raw下的资源:MediaPlayer.create(this, R.raw.test);//②本地文件路径:mp.setDataSource("/sdca

2021-08-03 22:38:41 436

原创 四大组件Activity

1、AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloworld"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_S

2021-08-02 21:51:45 82

原创 两个单链表相交的一系列问题

/** * 两链表相交 * 判断两个链表是否有环 * 一、一个无环一个有环一定不相交 * 二、两个无环则找交点 * 方法:假如链表1长a+c链表2长b+c则a+c+b=b+c+a, * 所以让第一个链表走完接着走链表2,链表二走完接着走链表一 * 两个结点一定会相遇 * 三、要是两个都有环 * 则分为两个入...

2019-08-13 12:12:08 97

原创 复制含有随机指针节点的链表

【题目】 一种特殊的链表节点类描述如下: public class Node { public int value; public Node next; public Node rand; public Node(int data) { this.value = data; } }Node类中的value是节点值,next指针和正常单链表中next指针的意义 一 样,都指向下...

2019-08-13 10:25:10 74

原创 回文链表

public static boolean isPalindrome(Node head) { if (head == null || head.next == null) { return true; } Node start = head; Node end = head.next; wh...

2019-08-12 21:09:04 88

原创 找出字符串中出现数字串最长的子串

public static String getNum(String str) { StringBuilder sb = new StringBuilder(); StringBuilder sb1 = new StringBuilder(); for (int i = 0; i < str.length(); i++) { ...

2019-08-12 20:33:25 402

原创 在行列都排好序的矩阵中找数

【题目】 给定一个有N*M的整型矩阵matrix和一个整数K, matrix的每一行和每一 列都是排好序的。实现一个函数,判断K 是否在matrix中。例如: 0 1 2 5 2 3 4 7 4 4 4 8 5 7 7 9 如果K为7,返回true;如果K为6,返 回false。【要求】 时间复杂度为O(N+M),额外空间复杂度为O(1)。 public static boo...

2019-08-12 20:31:16 89

原创 “之”字形打印矩阵

/** * “之”字形打印矩阵 */ public static void printfZhi(int[][] arr) { int a = 0; int b = 0; int c = 0; int d = 0; int endRow = arr.length - 1; ...

2019-08-12 18:46:45 131

原创 反转链表

public class MyLinkList { public static class Node { public int value; public Node next; public Node(int data) { this.value = data; } }/** * 递归实...

2019-08-12 16:28:32 90

原创 转圈打印矩阵

/** * 转圈打印矩阵 */ public static void printMatrix(int[][] arr) { int a = 0;//(a.b)位置 int b = 0; int c = arr[0].length - 1;(c,d)位置 int d = arr.length - 1; ...

2019-08-12 15:40:09 76

原创 队列实现栈,栈实现队列

/** * 栈实现队列 * 全部进入另一个 */ public static class StackToQueue { Stack<Integer> stack = new Stack<>(); Stack<Integer> temp = new Stack<>(); public void push...

2019-08-12 14:38:42 93

原创 返回栈中最小元素

实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返 回栈中最小元素的操作。【要求】pop、push、getMin操作的时间复杂度都是O(1)。设计的栈类型可以使用现成的栈结构。public static class StackByMin { private java.util.Stack<Integer> stackData; priva...

2019-08-12 14:06:04 137

原创 用数组结构实现大小固定的队列和栈

public class QueueAndStack { public static class Queue { private Integer[] arr; private Integer size;//利用size解耦first和end private Integer first; private Integer last...

2019-08-12 13:46:01 89

原创 Java Web之Session

Session:服务器端会话技术什么是Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话...

2019-07-30 19:59:23 197

原创 Java Web之Cookie

Cookie:客户端会话技术什么是Cookie:简单来说,Cookies就是服务器暂时存放在你的电脑里的资料(.txt格式的文本文件),好让服务器用来辨认你的计算机。当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookies 会把你在网站上所打的文字或是一些选择都记录下来。当下次你再访问同一个网站,Web服务器会先看看有没有它上次留下的Cookies资料,有的话,就会依据...

2019-07-30 19:31:54 80

原创 Java Web之Servlet

什么是Servlet       Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。      ...

2019-07-29 19:42:21 191

原创 Java注解

什么是注解:Annotation(注解)是JDK1.5及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据(用来描述数据的数据)的访问。另外,你可以在编译时选择...

2019-07-27 15:28:42 54

原创 NIO实例(基于文件和套接字)

基于文件夹复制的NIO实例public void fileCopy(File file, File newFile) { File[] files = file.listFiles(); File newFilePath = new File(newFile.getAbsolutePath() + file.getAbsolutePath().split(":")...

2019-07-27 12:27:16 136

原创 Java IO

file类File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)File类声明在java.io包下File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的"终点".file类常用方法publ...

2019-07-27 11:16:36 70

原创 Linux权限介绍

介绍:Linux系统一般将文件可存/取访问的身份分为3个类别:owner、group、others,且3种身份各有read、write、execute等权限。Linux的权限介绍要设置权限,就需要知道文件的一些基本属性和权限的分配规则。在Linux中,ls命令常用来查看文件的属性,用于显示文件的文件名和相关属性命令 :ls -la以最后一条为例:d代表为文件夹,-代表文件,l代表软链...

2019-07-26 19:23:15 117

原创 Linux用户和组管理

介绍:Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的密码。用户在登录时键入正确的用户名和密码后,就能够进入系统和自...

2019-07-26 17:54:16 84

原创 Linux常用指令

1. ls指令列出当前工作目录下的所有文件/文件夹的名称用法:ls [选项] 路径常用选项:-l:表示list,表示以详细列表的形式进行展示-a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)-h:列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以可读性较高的形式显示2. pwd指令打印当前工作目录3. cd指令用法:cd 路径(相对路径...

2019-07-26 17:07:49 1111

原创 Java Web之JavaScript

概念: 一门客户端脚本语言运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎脚本语言:不需要编译,直接就可以被浏览器解析执行了功能:可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。基本语法1. 与HTML结合方式在HTML页面内定义定义<script>,标签体内容就是js代码在外部定义&l...

2019-07-25 20:22:07 134

原创 Java Web之CSS

概念: Cascading Style Sheets 层叠样式表* 层叠:多个样式可以作用在同一个html的元素上,同时生效好处:功能强大将内容展示和样式控制分离降低耦合度。解耦让分工协作更容易提高开发效率CSS的使用:CSS与html结合方式内联样式在标签内使用style属性指定css代码如:<div style=“color:red;”&g...

2019-07-25 19:42:10 71

原创 Java Web之HTML

HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。HTML超文本标记语言HTML是⽤于创建⽹⻚的语⾔。我们通过使⽤HTML标记标签创建html⽂档来创建⽹⻚。HTML代表超⽂本标记语⾔。HTML是⼀种标记语⾔,它具有标记标签的集合。HTML标签是由尖括号括起来的词,如 <html>,<body> 。标签通常成对出...

2019-07-25 19:24:01 230

原创 Java类加载机制

类是在运行期间第一次使用时动态加载的,而不是一次性加载所有类。因为如果一次性加载,那么会占用很多的内存。类的生命周期:加载->验证->准备->解析->初始化->使用->卸载类加载过程包括加载,验证,准备,解析,初始化1.加载通过类的全限定类名获得类的二进制字节流将该字节流表示的静态存储结构转换为方法区的运行时存储结构在内存中生成一个代表该类的 C...

2019-07-23 15:56:32 83

原创 LRU缓存

基于 LinkedHashMap实现LinkedHashMap内部维护了一个双向链表,用来维护插入顺序或者 LRU 顺序。accessOrder 决定了顺序,默认为 false,此时维护的是插入顺序。LinkedHashMap 最重要的是以下用于维护顺序的函数,它们会在 put、get 等方法中调用。void afterNodeAccess(Node<K,V> e)当一...

2019-07-23 12:48:42 80

原创 Java容器

介绍:Java容器主要包括collection和map两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表collectionCollcetion集合存储对象要求对象所在的类重写equals方法list存储的数据特点:存储序的、可重复的数据。实现类:ArrayList:作为List接口的主要实现类;线程不安全的,效率高;底层使用Object[] ...

2019-07-23 12:24:06 111

原创 JDK1.8新特性(三)

Optional类空指针克星!为了解决java中的空指针问题而生!!Optional 类(java.util.Optional) 是一个容器类,它可以保存类型T的值,代表这个值存在。或者仅仅保存null,表示这个值不存在。原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常。Optional提供很多有用的方法,这样我们就不用显式进行空值检...

2019-07-22 20:18:47 336

原创 JDK1.8新特性(二)

Stream API什么是Stream APIStream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API对集合数据进行操作,就类似于使用sql执行的数据库查询。也可以使用Stream API来并行执行操作。简而言之,Stream API提供了一种高效且易于使用的处理数据的方式。为什么要使用Str...

2019-07-22 19:24:04 81

原创 JDK1.8新特性(一)

Lambda表达式介绍:Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。Lambda...

2019-07-22 17:42:00 84

原创 JAVA内存模型

java内存模型主内存与工作内存Java内存模型的主要目标是定义程序中各个变量的访问规则,即在JVM中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量包括实例字段、静态字段和构成数组对象的元素,但不包括局部变量和方法参数,因为后两者是线程私的,不会被线程共享。处理器上的寄存器的读写的速度比内存快几个数量级,为了解决这种速度矛盾,在它们之间加入了高速缓存。加入高速缓存带来了一...

2019-05-17 19:24:18 143

原创 深入了解J.V.M

线程私有1.程序计数器记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空。2.java虚拟机栈虚拟机栈描述的是Java方法执行的内存模型 : 每个方法执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应一个栈帧在虚拟机栈中入栈和出栈的过程。声明周期与线程相同。之前我们一直讲的栈区域实际上就是此...

2019-05-17 19:14:51 486

空空如也

空空如也

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

TA关注的人

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