- 博客(41)
- 收藏
- 关注
转载 常见内存泄漏场景以及处理方式
内存泄露的分类一般内存泄漏(traditional memory leak)的原因是:由忘记释放分配的内存导致的。逻辑内存泄漏(logical memory leak)的原因是:当应用不再需要这个对象,当仍未释放该对象的所有引用。...
2019-02-28 15:53:26 1319
转载 Java内部类
一.内部类基础在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。1.成员内部类成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式:class Circle { double radius = 0; ...
2019-02-28 11:49:19 213
转载 Android ANR
ANR是Android中一个独有的概念,它的全称是Application Not Responding(应用程序无响应)。ANR的直观体验是用户在操作APP的过程中,感觉界面卡顿,比如按下某个按钮,打开某个页面等,当卡顿超过一定时间(一般是5秒)时就会出现ANR对话框,如下图所示:这时查看Logcat,一般可以发现ANR以及traces.txt等字样。可以发现,出现ANR主要是因为我们在主线程...
2019-02-27 16:47:27 230
转载 内存溢出和内存泄漏的区别
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导致o...
2019-02-26 17:25:50 155
原创 测试(开发)版和正式(发布)版MD5,SHA1,SHA256的获取方式
1.测试版的获取直接利用gradle的Tasks功能就可以在没有证书的情况下获取测试版的MD5,SHA1,SHA256。当拥有了证书后,点击这个按钮是获取正式版的MD5,SHA1,SHA256。2.正式版的获取前提有签名文件的创建利用Terminal输入指令即Face_Project zhangqianqian$ keytool -list -v -keystore 签名文件路径可获取...
2019-02-26 16:07:26 414
转载 关于Android arm64-v8a、armeabi-v7a、armeabi、x86等CPU下的so文件兼容问题
先介绍几个专业词:ARM :是嵌入式中的一种架构,全称为Advanced RISC Machine,可以理解为ARM处理器。ABI(Application Binary Interface):应用程序二进制接口 描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。ABI和CPU关系:大部分cpu都支持多于一种的ABI。当一个应用安装在设备上,只有该设备...
2019-02-26 13:51:38 1151
原创 Android打包之多渠道打包
多渠道打包的目的:为了实现应用包可以在多个应用商城上架1.修改AndroidManifest.xml的application标签里添加一个meta-data标签定义
2019-02-22 17:16:48 220
原创 Android打包之Androidstudio的自带的打包方式
首先我们来了解一下android打包到底做了哪些事?(1). 生成用于应用的R.java;(2). 编译所有java文件为class文件;(3). 打包class文件和jar包为classes.dex;(4). 打包assets和res资源为资源压缩包(例如res.zip,名字可以自己定义);(5). 组合classes.dex和res.zip生成未签名的APK;(6). 生成有签名的...
2019-02-21 15:57:42 1071
转载 Android dex分包方法的简介
什么是dexDex就是Dalvik VM executes的全称,可以认为是安卓虚拟机的可执行程序。为什么用到分包大致可以分为2个原因。1 dex中包含的方法囊括了所有依赖的jar包和源码中的方法。在稍微大一些的项目中,这个方法数目是很可观的。而dex中表示方法数目的是short类型。所有最大只能表示到65536. 因此会出现一个dex无法保存所有方法的情况,此时需要分包。这里一般...
2019-02-20 17:40:39 318
转载 jar文件和arr文件的区别
两者区别:*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。*.aar:包含所有资源,class以及res资源文件全部包含如果你只是一个简单的类库那么使用生成的*.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用*.aar文件。*.jar,JAR 文件就是 Java Archive File,顾名...
2019-02-20 17:15:49 2806 1
转载 MAC下Android打arr包及使用
1.打包arr文件1).和打包jar包一样,首先要保证内包2).点击Android studio右侧的Gradle按钮,然后点击需要生成的library的项目下的assemble3).在build/outputs生成 arr文件,一般选用那个release版本的aar文件即可2. 项目导入 arr文件...
2019-02-20 17:08:26 1178
转载 MAC下Android Studio打jar包及其使用
1.一些配置配置gradle文件先确定当前的gradle是否存在,在终端输入下列命令:$ gradle -version如果出现下列情况,则需要配置一下gradle,否则,就是gradle已经配置好了,若出现其他情况请耐心往下看,下面会讲解:-bash: gradle: command not found配置:先找到Android Studio内安装的gradle包的位置:打开...
2019-02-20 15:27:59 701
转载 深入分析Java中的I/O类的特征及适用场合
Java中有40多个与输入输出有关的类,如果不理清它们之间的关系,就不能灵活地运用它们。 如果从流的流向来分,可分为输入流和输出流,而输入流和输出流又都可分为字节流和字符流。因而可将Java中的I/O流以下图进行划分:注意上图并非继承关系,而只是一个示意图。 Java中的其它与I/O流处理相关的类其实都是从InputStream,Reader,OutputStream和Writer...
2019-02-19 17:33:53 162
转载 Http报文
Http报文:Http应用程序之间发送的数据块。Http报文的流动方向:一次Http请求,客户端流到代理再流到服务器。服务器工作完成之后,报文又会从服务器流到代理再流到客户端。HTTP请求报文格式HTTP 的请求报文分为三个部分 请求行、请求头和请求体,格式如图:注:部分文章也将HTTP请求报文分为两部分请求头和请求体,请求头的第一行为请求行。1.1 请求行请求行(Request ...
2019-02-19 10:37:18 186
转载 网络协议
为了计算机网络数据交换而建立的规则,标准或约定的集合。1)IOS七层模式物理层:网线等物理设备(交通工具)数据链路层:提供介质访问和链路管理网络层:IP选址及路由选择(快递集散中心相当于一个IP节点,IP寻址找到合适的路由和交换节点,准确无误的将地址传送到目的端的传输层)传输层:建立,管理和维护端和端端连接(投递员,建立端和端的连接TCP,UDP)会话层:建立,管理和维护会话(外联部,...
2019-02-18 23:26:03 107
转载 HashMap中hash值的生存,以及如何解决冲突
哈希函数:关键字和它在表中的储存位置之间建立的一个函数关系。以F(X)作为关键字为key的记录在表中的位置,通常称这个函数f(key)为哈希函数。hash冲突:key值根据哈希函数等到的结果作为地址去存放当前的key value键值对,然而这个地址已经有对应的键值对。解决hash冲突的方法:1)再哈希法2)链地址法3)建立公共溢出空间4)开发定址法(线性探测再散列,二次探测再散列,伪随...
2019-02-18 11:57:27 270
转载 Javabeen的概念
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。...
2019-02-18 11:35:47 821
转载 抽象类和接口的具体区别
参数抽象类接口默认的方法实现可以有默认的方法实现接口完全是抽象的。不存在方法的实现实现子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,需要提供抽象类中所有声明的方法的实现子类使用关键字implements来实现接口。它需要提供接口中所有声明的方法的实现构造器抽象类可以有构造器接口不可以有构造器与正常Java类的区别除了不能实例...
2019-01-23 20:06:50 99
转载 final,static,finally和finalize
final1)修饰变量:不能改变2)修饰方法:不能重写3)修饰类:不能继承static1)修饰成员变量:不需要实例化对象,类名直接引用static成员。共享和公共的概念,在创建对象后,成员变量是存储在堆中的,而static成员变量和类的信息一起存储在方法区,一个类的static成员变量只有一份(存储在方法区),无论该类创建了多少对象。2)修饰方法:不需要针对某些对象进行操作,其运行...
2019-01-23 19:36:40 206
转载 Java之八种基本数据类型
概念byte:8位,有符号的以二进制补码表示的整数min: -128(-2^7)max:127(2^7)default:0对应包装类:Byteshort:16位,有符号的以二进制补码表示的整数min:-32768(-2^15)max:32767(2^15-1)default:0对应包装类:Shortint:32位,有符号的以二进制补码表示的整数min:-2,147...
2019-01-23 18:44:44 158
转载 面向对象(封装,继承,重写,重载和多态)
面向对象是一种思想,是基于面向过程而言的,面向对象是将功能等通过对象来实现,将功能封装到对象之中,让对象实现具体的细节。这种思想是将数据作为第一位,而方法(算法)作为其次,是对数据的一种优化,操作起来更加的方便,简化了过程。1)封装封装:隐藏对象的属性和实现细节,提供公共访问方式。封装的好处:隐藏类的实现细节,让使用者只能通过程序员规定的方法来访问数据,可以方便的加入存取控制语句,限制不合理...
2019-01-23 17:12:53 2924 1
原创 活动的启动模式
启动模式有4种:standard,singleTop,singleTask和singleInstance,可以在AndroidManifest.xml中通过给标签指定android:launchMode属性来选择启动模式。1.standard模式默认的启动模式,使用返回栈来管理活动。在standard模式下,每当启动一个新的活动,就会在返回栈中入栈,并处于栈顶的位置。对于使用standard...
2019-01-16 19:23:46 332
转载 Android studio项目结构
我们创建了一个Android Project,打开就如下图所示:我们选择Project视图,就会有以下的项目文档结构:上面笔者标注的数字是接下来要讲解的内容。我们先来看1: 我们创建Application的时候,要求我们输入项目名称,1就是我们创建的项目,AndroidDevelopCourse是项目名称,在实际开发中,我们要为我们项目取一个能明确表达产品的名称,一般使用英文来描述,比...
2019-01-16 15:14:56 238
转载 SharedPerferences的使用方法
SharePerferences是使用键值对的方式来储存数据的。1.将数据储存到SharedPerferences中1)Context类中的getSharePerferences()方法两个参数(指定文件名称,指定操作模式<MODE_PRIVATE>)2)Activity类中的getPerferences()方法只接收一个操作模式参数,因为使用这个方法时自动将当前活动的类名作...
2019-01-15 17:19:28 694
转载 http和https的区别
1.https需要申请ca证书,申请需要一定费用的。2.http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL加密传输协议。3.http和https使用不同的连接方式,端口也不同,前者是80,后者443。4.http的连接很简单的,是无状态的连接;Https协议是SSL+HTTP协议构建的可加密传输和身份认证的网络协议,比http协议安全。...
2019-01-15 15:56:39 120
原创 ArrayList和LinkedList的插入,取出时间复杂度
总结:1.ArrayList是线性表(动态数组),LinkedList是链表2.get,set方法,方法参数有指定位置数值的,ArrayList要优于LinkedList,因为,ArrayList有下标,LinkedList要移动指针。3.新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList需要移动数据...
2019-01-09 16:59:47 7534 9
原创 集合类的了解
注:其中HashSet的储存方式和HashCode值的关系:1.如果HashCode值不同,直接把元素储存在HashCode指定的地址2.如果HashCode值相同,会继续判断该元素和集合中的对象equals()获取的值。3.如果HashCode值相同,equals()方法的值为true,则视为同一个元素,不进行保存4.如果HashCode值相同,equals()方法的值为false,则...
2019-01-09 16:09:13 114
转载 序列化和反序列化的概念
1.序列化和反序列化的概念序列化:把对象转换为字节序列的过程称为对象的序列化反序列化:把字节序列转换为对象的过程称为对象的反序列化现在来点通俗的解释。在代码运行的时候,我们可以看到很多的对象(debug过的都造吧),可以是一个,也可以是一类对象的集合,很多的对象数据,这些数据中,有些信息我们想让他持久的保存起来,那么这个序列化。就是把内存里面的这些对象给变成一连串的字节描述的过程,常见的就是...
2019-01-09 14:14:37 396 16
转载 if else和switch的区别
1.if1)语法结构:if(表达式){ 方法体 }else if{ 方法体 }else{ 方法体 }表达式支持:逻辑表达式,关系表达式,任意的数据类型2)注:任何表达式编译系统都会将其转化成逻辑值进行判断。3)适合“条件少,逻辑型的判断”。特长是逻辑判断。2.switchswitch(表达式){ ...
2019-01-08 16:32:20 2996
转载 Java之List和Map的几种遍历方法:
package com.example.zhangqianqian.java_project;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;public class List_Map {...
2019-01-08 15:40:53 145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人