概述泛型:参数化类型(将类型由原来的具体的类型参数化)。
特点:
适用于多种数据类型执行相同的代码。
使用泛型时,在实际使用之前类型就已经确定了,不需要强制类型转换。
泛型只在编译阶段有效。
泛型命名标识字母(常见字母):
T Type
K V Key Value
E Element
简单使用泛型类12
阅读全文
如何标识唯一的Android设备呢?
硬件标识符IMEI 国际移动设备身份码(International Mobile Equipment Identity),是由15位数字组成的”电子串号”,它与每台手机一一对应,而且该码是全世界唯一的。
IMEI所需权限:
1<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
阅读全文
说到应用唯一性,下面三个关键词,有何区别和联系呢?
包名
applicationId
签名
包名定义简介包名指的是软件包名称(代码命名空间)。就是我们平常写代码import的package。
配置示例123<manifest xmlns:android...
阅读全文
问:三个概念,你弄清楚了吗?内存:Memory内部存储:InternalStorage外部存储:ExternalStorage
答:说到这三个概念,就不得不说一下平时我们选购手机的参数6G+128G、8G+256G等,这里的6G和8G指的是手机内存(手机运行时存储),而128G和256G指的是手机存储空间(由内部存储的空间和外部存储的空间构成)。PS:所以如果追求手机的运行速度,内存买大一点。可以理解为手机内存是操场,而手机存储空间是教室,要想学生们跑得快自然操场得大一些,教室的大小只决定了可以容纳多少学生。
你了解Android手机的存储目录吗?
你知道Android手机App应用数据都存放在哪了吗?
你知道Android手机存储存在的隐私安全问题吗?
那么开始今天的故事。
虚拟世界Android存储目录的化身——A州M社区。
众所周知,A州是一座正在蓬勃发展的城市。M社区是A州引以为傲的设施完备的高档社区(各家...
阅读全文
ArrayMap
ArraySet
SparseArray
SparseIntArray
SparseBooleanArray
SparseLongArray
设计这些Android特有的集合类的意义为什么要设计这些Android特有的集合类呢?
主要目的: 优化内存占用。在移动设备端内存资源很珍贵,Java原本的集合类为实现快速查询带来了很大内存的浪费。
ArrayMap设计目的代替HashMap<Object,Object>,且key唯一。
阅读全文
一、引言上次我们讲到二维码比条形码更优秀,可以承载更多信息等;也讲到了我们平常所说的二维码是QR Code,是狭义的二维码。后文所说的二维码除特殊说明外,也都指的是QR码。忘了的同学或者没看过上一篇的同学可以点这里。
这个界面想必大家都很熟悉,那么扫二维码的这一过程到底发生了什么呢,作为社交和移动支付“宠儿”的二维码是如何与世浮沉的呢,今天我们来了解一下。
二、二维码识别基本过程
阅读全文
一、模式概述:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法是一个类的实例化延迟到其子类。
UML图:
抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。在java中它由具体的...
阅读全文
一、简述 View的工作流程主要是指measure、layout、draw这三大流程,即测量、布局、绘制。measure确定View的测量宽高;layout确定View的最终宽高和四个顶点的位置;draw则将View绘制到屏幕上。
二、measure过程1. View的measure过程 由measure()方法来完成,measure()方法是final类型的方法,因此不能被重写。而measure方法会去调用onMeasure()方法,因此只需要看onMeasure()的实现即可。具体可以参看上一节相关内容。
阅读全文