- 博客(160)
- 资源 (8)
- 收藏
- 关注
转载 Android 8.0指纹流程
第一部分 指纹模块流程分析一、Fingerprint模块架构Fingerprint模块架构主要由application,framework,fingerprintd和FingerprintHal这几个部分,以及涉及到指纹的IC库和驱动这部分,这部分逻辑由指纹厂商来实现。application层主要涉及到Settings 和 SystemUI二、指纹录入1.Settings中重要的...
2019-04-03 20:11:31
1056
转载 android 7.0 加入 android:directBootAware
Android N引入了一个新特性: Direct Boot Mode—— 设备启动后进入的一个新模式,直到用户解锁(unlock)设备此阶段结束。在此 Direct Boot Mode 下 APP 主要使用在如果情况Alarm、clock 类的操作 需要做重要的或紧急的通知 底层服务类使用场景的话,如手机丢了,捡到的人解不开锁,也做不了啥操作,现在任意工作在Direct Bo...
2019-04-01 10:13:56
571
转载 Android SDK工具:使用layoutopt(lint)进行布局优化
android_sdk_windows\tools\lint.bat创建好看的Android布局是个不小的挑战,当你花了数小时调整好它们适应多种设备后,你通常不想再重新调整,但笨重的嵌套布局效率往往非常低下,幸运的是,在Android SDK中有一个工具可以帮助你优化布局,以减少内存消耗,提高应用程序运行性能。layoutoptimization优化是需要一定技巧的,性能良好的...
2019-03-29 10:48:01
356
转载 Android.mk文件学习笔记
Settings的Android.mk文件如下:LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES := \ $(call all-logtags-files-under, src)LOCAL_MODULE := settings-logtagsinclude $(BUILD_STATIC...
2019-03-28 10:46:14
609
转载 Android6.0 PackageManagerService(PMS)-卸载
1. 与installPackageAsUser相对应的deletePackageAsUserpublic void deletePackageAsUser(String packageName, IPackageDeleteObserver observer, int userId, int flags) { deletePackage(packageName, new Legac...
2019-03-27 19:31:55
710
转载 android.graphics.Color
该类定义的都是些static常量和函数,这些函数都是为了创建和转化成int型的color。颜色是由int型的数表示,由4个字节组成,分别是A R G B,这个int型的值是确定的,透明度的值只能存在A这个字节上,不能存在颜色的字节上。存储的方式为(alpha << 24) | (red << 16) | (green << 8) | blue.每一部分的取值...
2019-03-26 13:44:50
1183
转载 操作Android中联系人,通话记录,短息,的URI
记住读取联系人需要配置权限:<uses-permission Android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />读取联系人的URI:/** * 所有联系...
2019-03-26 11:14:06
1042
转载 Pro Android学习笔记(一六一):联系人API(4):读取整合联系人
本次我们将写一个小例子读取整合联系人的信息。要读取联系人需要声明权限android.permission.READ_CONTACTS读取整合联系人的信息小例子的代码如下:public class AggregatedContactsTest extends ....{… …//隐藏无关代码,showInfo()用于在UI或者LogCat中显示文字信息。//...
2019-03-26 11:12:49
289
转载 Fragment的setUserVisibleHint详解
Android应用开发过程中,ViewPager同时加载多个fragment,以实现多tab页面快速切换, 但是fragment初始化时若加载的内容较多,就可能导致整个应用启动速度缓慢,影响用户体验。为了提高用户体验,我们会使用一些懒加载方案,实现加载延迟。这时我们会用到getUserVisibleHint()与setUserVisibleHint()这两个方法。/**** @para...
2019-03-26 11:11:24
922
转载 Fragment 出栈的方法popBackStack需要特别注意的一点
Fragment弹出回退栈的方法有以下:void popBackStack()弹出堆栈中的一个并且显示,类似按下返回键的操作;popBackStack(String tag,int flags)tag可以为null或者相对应的tag,flags只有0和1(POP_BACK_STACK_INCLUSIVE)两种情况如果tag为null,flags为0时,弹出回退栈中最上层的那个fr...
2019-03-25 15:22:20
3339
转载 PackageInfo、ResolveInfo
1.PackageInfo、ResolveInfoPackageItemInfo:包含了一些信息的基类,它的直接子类有:ApplicationInfo、 ComponentInfo、InstrumentationInfo、PermissionGroupInfo、PermissionInfo。 它的间接子类有:ActivityInfo、Pro...
2019-03-25 11:20:02
327
转载 RandomAccessFile的常见用法
1.RandomAccessFile的简介1.1为什么要用到RandomAccessFile我们平常创建流对象关联文件,开始读文件或者写文件都是从头开始的,不能从中间开始,如果是开多线程下载一个文件我们之前学过的FileWriter或者FileReader等等都无法完成,而当前介绍的RandomAccessFile他就可以解决这个问题,因为它可以指定位置读,指定位置写的一个类,通常开发过程中...
2019-03-25 10:43:39
149
转载 Android之:了解MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST)
在自定义View和ViewGroup的时候,我们经常会遇到int型的MeasureSpec来表示一个组件的大小,这个变量里面不仅有组件的尺寸大小,还有大小的模式。这个大小的模式,有点难以理解。在系统中组件的大小模式有三种:1.精确模式(MeasureSpec.EXACTLY)在这种模式下,尺寸的值是多少,那么这个组件的长或宽就是多少。2.最大模式(MeasureSpec.AT_MO...
2019-03-23 17:10:55
584
转载 Java中 CopyOnWriteArrayList 的使用
java中,List在遍历的时候,如果被修改了会抛出java.util.ConcurrentModificationException错误。看如下代码:import java.util.ArrayList;import java.util.List;public class Resource3 { public static void main(String[] arg...
2019-03-22 16:32:16
200
原创 Linux的wget命令详解
Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget...
2019-03-21 09:43:55
258
转载 IntelliJ Idea 常用快捷键 超实用!
IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!1. -----------自动代码-------- 常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码 例如要输入for(User user : users)只需输入user.for+Tab 再比如,要输入Date birthday = user...
2019-02-15 19:07:10
141
转载 Intellij Idea选中内容后Backspace删除无法使用,Ctrl+c/Ctrl+v/Ctrl+s/Ctrl+d等等快捷键无法使用的问题的解决
因为在安装idea时选择了vim编辑模式,只要把vim模式关闭掉,就可以解决问题了解决方法:菜单栏:tools->vim Emulator 点一下 把√去掉就可以了;
2019-02-15 19:03:57
1440
1
转载 java查询mysql中文问题
String DBDRIVER= "com.mysql.jdbc.Driver";String DBURL ="jdbc:mysql://localhost:3306/netdisk?useUnicode=true&characterEncoding=utf-8";String DBUSER ="root";String DBPASS = "root";写mysql的URL时 ...
2019-02-15 15:00:18
471
原创 mysql出现ERROR 1366 (HY000):的解决办法
今天向新建的表中添加内容,出现以下错误:mysql> INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('R510VC 15.6英寸笔记本','笔记本','华硕','3399',DEFAULT,DEFAULT);ERROR 1366 (HY000): In...
2019-02-15 14:54:18
964
原创 如何将.SQL文件的数据导入到Mysql的数据库中
一、用cmd的调试环境导入.sql文件中的数据:WinR键打开cmd输入:MySQL -u root -p 进入MySQL后MySQL>use DR; MySQL> source c:/DR.sql注意上面的 DR是你事先创建好的文件夹,创建在Mysql的data目录下面,DR.sql是你下载的数据库的内容,注意DR.sql是要放在磁盘的最外层目录的,否则无法导入数...
2019-02-14 17:19:02
7828
转载 Java正则表达式匹配规则
1.1 正则表达式的概念正则表达式(英语:Regular Expression,在代码中常简写为regex)。正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。1.1 正则表达式的匹配规则参照帮助文档,在Pattern类中有正则表达式的的规则定义,正则表达式中明确区分大小写...
2019-01-25 10:03:07
1434
1
转载 StringBuilder的容量capacity变化规则
StringBuilder的容量capacity变化,是每次2倍增长吗?(jdk1.8)测试代码 1StringBuilder sb = new StringBuilder();System.out.println(sb.capacity() + "----" + sb.length());sb.append("0000_0000_0000_0");System.out.println(...
2019-01-25 09:47:52
1809
原创 使用Gradle生成Kotlin代码文档
Kotlin项目在 Root Project 下的 build.gradle 文件中 buildscript 下的 dependencies 中添加:classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.15"在 module 下的 build.gradle 文件中添加:apply plugin: 'org.jetbrai...
2019-01-24 16:14:01
1007
转载 Android 面向接口编程
一、概述面向接口编程是面向对象编程的一种实现方式,它的核心思想是将抽象与实现分离,从组件的级别来设计代码,达到高内聚低耦合的目的。最简单的面向接口编程方法是,先定义底层接口模块,再定义高层实现模块。但是这样存在一个问题,就是当修改底层接口的时候,高层实现也需要跟着修改,这也违反了开闭原则。 在面相对象设计基本原则(SOLID)中,依赖倒置原则说得就是这个问题。 同时配合使用依赖注入思想,可以...
2019-01-21 19:10:32
225
转载 谈谈Fragment的构造函数、重新创建(recreate)及相关
本文分享一些Android Fragment使用经验,不准备详细介绍,只是介绍一些使用注意点,对于有一定开发经验的朋友应该会比较有帮助。对于我理解不对的地方,希望批评指正,谢谢!1、Fragment初始化一定要提供默认构造函数。不能用构造函数传递参数!不要写带参数的构造函数。参数通过下面介绍的方式传递。原因:Fragment会被重新销毁(Activity销毁的时候它里面的Fragme...
2019-01-21 18:58:50
1180
转载 Android如何避免OOM总结
前面介绍了一些基础的内存管理机制以及OOM的基础知识,那么在实践操作当中,有哪些指导性的规则可以参考呢?归纳下来,可以从四个方面着手,首先是减小对象的内存占用,其次是内存对象的重复利用,然后是避免对象的内存泄露,最后是内存使用策略优化。1)使用更加轻量的数据结构例如,我们可以考虑使用ArrayMap/SparseArray而不是HashMap等传统数据结构,下图演示了HashMap的简要工...
2019-01-21 18:53:10
390
转载 Android多线程的四种方式
当我们启动一个App的时候,Android系统会启动一个Linux Process,该Process包含一个Thread,称为UI Thread或Main Thread。通常一个应用的所有组件都运行在这一个Process中,当然,你可以通过修改四大组件在Manifest.xml中的代码块(<activity><service><provider><rece...
2019-01-21 18:43:42
1063
转载 Android 表示一对“组元素”的Pair类
一、Pair初认识打开词典,输入Pair,我们会得到这样的解释Paste_Image.png解释是:一副, 一条, 一把; 一双, 一对。噢噢,成双成对罗。什么,你看到的解释的是最后一行?罢了罢了,开始吧。还是先看一下官网怎么说吧Paste_Image.png1、API 5 就有了,老兵啊2、Pair<F,S>,成双成对罗。严肃的说,就是:Pa...
2019-01-21 16:55:26
1242
原创 Android学习笔记之性能优化SparseArray
学习内容:1.Android中SparseArray的使用.. 昨天研究完横向二级菜单,发现其中使用了SparseArray去替换HashMap的使用.于是乎自己查了一些相关资料,自己同时对性能进行了一些测试。首先先说一下SparseArray的原理. SparseArray(稀疏数组).他是Android内部特有的api,标准的jdk是没有这个类的.在Android内部用来...
2019-01-21 16:54:45
368
转载 Android瀑布流照片墙实现,体验不规则排列的美感
传统界面的布局方式总是行列分明、坐落有序的,这种布局已是司空见惯,在不知不觉中大家都已经对它产生了审美疲劳。这个时候瀑布流布局的出现,就给人带来了耳目一新的感觉,这种布局虽然看上去貌似毫无规律,但是却有一种说不上来的美感,以至于涌现出了大批的网站和应用纷纷使用这种新颖的布局来设计界面。记得我在之前已经写过一篇关于如何在Android上实现照片墙功能的文章了,但那个时候是使用的GridView来...
2019-01-18 19:09:37
285
转载 Android照片墙应用实现,再多的图片也不怕崩溃
照片墙这种功能现在应该算是挺常见了,在很多应用中你都可以经常看到照片墙的身影。它的设计思路其实也非常简单,用一个GridView控件当作“墙”,然后随着GridView的滚动将一张张照片贴在“墙”上,这些照片可以是手机本地中存储的,也可以是从网上下载的。制作类似于这种的功能的应用,有一个非常重要的问题需要考虑,就是图片资源何时应该释放。因为随着GridView的滚动,加载的图片可能会越来越多,如果...
2019-01-18 19:07:30
366
转载 Java Socket编程基础及深入讲解
Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程。Socket用在哪呢,主要用在进程间,网络间通信。本篇比较长,特别做了个目录:一、Socket通信基本示例二、消息通信优化 2.1 双向通信,发送消息并接受消息 2.2 使用场景 2.3 如何告知对方已发送完命令 2.3.1 通过Socket关闭 2.3.2 通过...
2019-01-15 12:11:25
160
转载 Socket通信原理
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Transmission C...
2019-01-15 10:32:58
174
转载 使用AndroidStudio提供的Android Profiler工具和mat进行内存泄漏分析
废话不多说直接说流程 给项目中集成LeakCanary工具进行内存泄漏检测。发现有内存泄漏后该工具会进行提示 有内存泄露后我们需要使用as的profiler工具进行分析并获取到.hprof文件,步骤如下 直接上图 点击如下按钮打开profiler工具 image.png 打开以后如下图, 3571184-f5b...
2019-01-11 18:06:29
1288
转载 MediaScanner源码分析(上)
MediaScanner是Android系统Media的基础,系统启动之初,就扫描出Media文件供后续使用,有新媒体加入或者删除掉媒体文件,也需要更新相应的媒体库。Android的Music、Gallery等播放或呈现媒体文件的程序也都基于稳定的MediaScanner扫描媒体文件的结果,否则,会发现程序操作的Media文件的URI根本不是实际对应的Media文件,或者甚至来电铃声和闹铃等都会...
2019-01-11 11:19:06
419
转载 c++与java的优缺点
大多数程序员都认为C/C++会比Java语言快,甚至于觉得从Java语言诞生以来,“执行速度缓慢”的帽子就应当被扣在头顶,这种观点的出现是由于Java刚出现的时候JIT编译技术还不成熟,主要靠解释器执行的Java语言确实性能比较低下。但是在今天JIT编译技术已经发展成熟之后,Java语言有可能在速度上与C/C++争一日长短了吗?这个问题的答案,让我们从两者的编译器谈起。 Java与C/C...
2019-01-11 10:08:58
932
原创 java语言的优缺点
1、Java是纯面向对象的语言。《Java编程思想》中提到Java语言是一种“Everything is object”的语言,它能够直接反映现实生活中的对象,例如车、动物等,因此通过它编写程序更容易。2、平台无关性。Java语言可以“一次编译,到处执行”。无论是在Windows平台还是在Linux、MacOS等其他平台上对Java程序进行编译,编译后的程序在其他平台上都可以运行。由于Java...
2019-01-11 10:08:14
14580
2
转载 互联网商业模式O2O、C2C、B2B、B2C等介绍
O2O是online to offline分为四种运营模式:1.online to offline是线上交易到线下消费体验2.offline to online是线下营销到线上交易3.offline to online to offline是线下营销到线上交易再到线下消费体验4.online to offline to online是线上交易或营销到线下消费体验再到线上消费体验...
2019-01-11 09:34:11
3257
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人