自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android广播的学习和使用

1.引子最近开发碰到一个需求,客户的设备是自助售货机,他们要求应用静默安装后能够启动,因为派人去现场一个个点击打开应用不现实。作为论坛复制粘贴工程师,碰到这个需求第一时间就是去网上搜索,看看这种需求有什么解决方案,网上文章很多,都说用静态广播,但我复制他们的代码一直没效果,反复排查哪里漏复制了,结果都不是,而是因为,这里先卖个关子,先学习一下广播,不然复制粘贴后还是啥都不懂。2.广播定义Android里的广播,和我们日常里的广播是相似的,都是用于消息的传递,但消息的传递不是一对一的传递,而是

2020-05-16 16:50:53 373

原创 Android权限申请的学习实践

1.引子在换到Android手机之前,对Android系统的印象是这系统app的跑马场,app可以任意索取各种权限,随意窃取各种隐私,换手机后才知道Android系统对权限的管理已有很大的改观,索取的每个危险权限都需要提示用户,当然Android只是尽可能提示用户,还是存在着用户不同意就不给用的情况。权限管理的改进给开发者增加了一定工作量,申请危险权限不再是简单的在AndroidManifes...

2020-04-18 18:31:27 1379

原创 Activity生命周期的学习和验证

1.引子Activity就像是英文词汇本的Abandon,开篇就能碰到,关于Activity生命周期的博客教程非常多,侧面说明Activity非常重要,其中的Activity的生命周期又是重中之重,面试官非常喜欢拿这个作为考点,因为掌握Activity生命周期对提高应用的健壮性具有很大的帮助。因为只看教程不自己总结实践的话,对其理解总会差点意思,自己动手总结了印象才深刻。2.Activity生...

2020-04-11 12:29:03 1100

原创 Android消息机制源码,一个比较直观的简析

1.引子在上一篇Android消息机制基本原理,我们学习了Android消息机制基本原理和使用方法,看到原理比较复杂,什么Handler啊,Looper啊,MessageQueue啊,但使用消息机制却是十多行代码搞定,感觉跟漫威电影一样,前期渲染反叛如何如何逆天,结果被主角轻松用嘴炮打败。当然Android开发和电影不同,电影中我们希望主角打败反派过程复杂一点,这样才有戏剧冲突性,但在Andr...

2020-03-28 11:10:03 161

原创 Android消息机制基本原理和使用

在Android开发过程中,我们常常遇到子线程更新UI的需求,例如在子线程进行耗时较长的下载,等下载完成之后,再去更新UI,提示用户下载完成,直接在子线程里更新UI,会得到报错提示:Only the original thread that created a view hierarchy can touch its views。Android老手知道这是怎么回事,并且知道解决方案,新手只能去网...

2020-03-20 19:43:16 446 1

原创 Android持久化存储(4)greenDAO的使用

1.背景在上篇博客介绍SQLite的使用我们能感觉到,虽然Android已经简化了一些SQLite的操作,提供了较为方便的API,但使用中还是需要开发者写一些SQL语言,简单而不简约,有时候只想存储一些简单数据,却需要花费很大力气去开发接口,当然你可以说让另一个程序员去开发数据库操作接口不就行了吗,你老板肯定不同意,这么简单的活还要找别人,本来招你就是想一个人当两个人用,你还奢望一份工作两个...

2020-03-13 18:28:05 388

原创 Android持久化存储(3)SQLite数据库的使用

1.什么是SQliteSQLite是由C语言编写的一款轻型数据库,因占用资源小,处理速度快,功能齐全,特别适用于移动设备,最重要的是开源,任何人都可以使用它,许多开源项目(PHP,Python)和当今两大手机操作系统Android和iOS都使用了SQLite,造就了SQLite成为目前世界上最常见的数据库引擎。2.SQLite特点除了占用资源小,处理速度快等优点,SQLite还有自己的特点,...

2020-03-07 14:04:06 264

原创 Android持久化存储(2)SharedPreferences使用介绍

1.背景在用文件存储的时候,我们体验到使用内部存储的方便快捷,即既不用申请权限,也不用指定路径,不过还是有不方便的地方,特别是在存储程序配置信息时,程序的配置信息往往是”键-值“的形式,例如是否夜间模式-否语言-中文全屏浏览-否对这些信息的存取,我们需要另外写解析类工具,不过,已有现成的轮子可以使用,那就是Android提供的SharedPreferences类。2.什么是Shar...

2020-03-01 11:26:00 419

原创 Android持久化存储(1)文件存储

1.背景APP基本都有一个设置界面,用于进行各种功能设置,例如隐私设置,浏览设置等,用户可不希望当费力做了各种设置之后,关闭APP或者手机关机之后设置就失效了,为避免这种情况发生,开发者只需把设置数据保存到磁盘上即可,这种技术有一个高大上的名称,称为持久化。当然持久化不仅指内存数据写到磁盘上,还包括将磁盘上的数据读取到内存中,是一种让数据在瞬时状态和持久状态转换的机制。Android系统中,持...

2020-02-29 22:39:42 375

原创 Android Context初探

1.背景作为一个Android新手,每次看到使用Context作为参数时,都有点焦虑,有时候传this就可以,有时候又不行,不知道为什么可以,为什么又不可以,根本原因还是对Context是一知半解,偏偏很多地方用到Context作为参数,一直一知半解下去不是办法,有必要研究一下Context究竟是什么。2.什么是Context?Context中文意思是上下文,在小学语文课时,我们肯定接触过联...

2020-02-24 21:53:30 2653

原创 Android AIDL使用介绍(3) 浅说AIDL背后的Binder

1.背景在前面的博客中,我们已经学会了使用AIDL进行跨进程通信,AIDL的使用比较简单,可实际上跨进程通信是一个相当复杂的过程,例如进程A是怎么找到进程B的,如果有一个进程C冒充进程A,进程B又该如何识别等等问题,而使用AIDL时,完全不用关心这复杂的过程,开发者只需关注业务逻辑即可,有句话说,哪有什么岁月静好,只不过有人替我们负重前行,AIDL的背后肯定有机制帮我们完成了这些进程间通讯的复杂...

2020-02-23 14:19:53 1458

原创 Android AIDL使用介绍(2)自定义数据类型的传递

1.背景默认情况下,AIDL只支持下列数据类型:Java八种基础数据类型(如 int、long、char、boolean 等);String字符串;CharSequence字符序列;List列表,List中的所有元素须是前面提到的数据类型,或者是Parcelable类型(这也是本文准备讲解的);Map,Map 中的所有元素必须是以上列表中支持的数据类型,或者您所声明的由 AIDL 生...

2020-02-19 12:26:57 1609 3

原创 Android AIDL使用介绍(1)基本使用

1.什么是AIDLAIDL全称是Android Interface Definition Language,中文译为Android接口定义语言,AIDL的提出是为了解决进程间通讯,我们知道,在Android系统中,每个进程在内存中是相互独立的,类似一个个独立王国,一个进程通常情况下无法访问其他进程的内存,但进程之间不是老死不相往来的状态,他们之间有许多数据交互的需求,为此提出了AIDL,通过AI...

2020-02-16 22:26:04 2663

原创 Android Service介绍

背景先从日常用户体验说起,用过苹果的iOS系统都知道,凡是音频播放,在下滑菜单都能看到是哪个应用在播放,音频的标题,用户还可以直接在下滑菜单操作,而安卓手机则不然,因为Android系统使用本文介绍的Service进行后台音乐播放,而Service不提供和用户交互接口,因此在安卓手机上,当用户打开音乐程序并后台播放音乐,想关闭音乐只有再打开该播放音乐程序或者直接杀死所有程序才能关闭音乐,如果用户...

2020-02-12 23:01:53 247

原创 Android回调的简单理解

1.什么是回调回调的定义是在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去实现,B类实现该方法后,它本身不会去调用该方法,而是传递给A类,供A类去调用,这种机制就称为回调,这个定义比较正式,但看起来太绕了,一会A类一会B类,把人绕晕了。使用日常生活中的例子来理解一下,回调英文单词是Callback,直译为回呼或者回电话,那就用跟电话有...

2020-01-18 21:56:48 1712 1

原创 Android JNI开发流程介绍

1.什么是JNIJNI全称是Java Native Interface,中文称为Java本地接口。JNI是JAVA语言和C/C++语言沟通的协议,通过JNI,Java代码可以调用C、C++等语言写的代码,或者反过来C、C++等语言代码通过JNI调用Java 写的代码。为什么使用JNI?我们知道,Java语言的特性是一次编写,到处运行,跨平台是Java的优点,但有得就有失,跨平台的特性导致了J...

2020-01-12 21:50:12 1037

原创 Schnorr身份识别方案

Schnorr身份识别协议是又一个零知识证明协议,相比Fiamt协议有两点不同,一是其安全性依赖于离散对数的困难性,二是该方案使用乘法群,从而可以提前计算了一些参数,减小了证明者实时计算开销,特别适合计算能力有限的环境下运行,例如嵌入式设备,介绍Schnorr之前,先对Schnorr所依据的乘法群和离散对数的背景进行介绍。1.首先理解一下群(goup)的概念现在我们的微信和qq上有各种群,...

2019-06-09 21:42:40 3377 1

原创 零知识证明介绍

日常生活中,我们经常要向说服他人相信某件事是真的,但除了这一具体陈述是真实的事实以外,又不想透露任何额外的信息。例如,Alice对Bob说,她能分辨茅台和五粮液的口味,但是她不愿意把具体分辨的方法告诉Bob,那么Alice要怎么让Bob相信自己说的是真的?Bob又怎么验证Alice说的是否是真的?和Alice和Bob类似的例子还有门禁系统的身份认证,访客想要验证自己是合法的用户,但是又不...

2019-06-02 22:48:37 2401 1

原创 numpy.mean函数

numpy.mean函数定义numpy.mean(a,axis=None,dtype=None,out=None,keepdims=<no value>)功能:用于计算指定轴的算术平均值返回值:返回数组元素的平均值。 默认情况下,计算所有元素的的平均值,否则返回指定轴的平均值。参数: a: array类型 如果a不是数组,函数会尝试转换...

2019-03-04 22:16:52 1695 1

原创 主成分分析法(PCA)原理漫谈

在研究OpenCV人脸识别算法时,了解到其中OpenCV特征脸法Eigenfaces是基于主成分分析法(principal component analysis,简称PCA),后来再了解到PCA不仅仅是在人脸识别算法中广泛使用,在其他需要数据降维时也大有用武之地。因此有必要对其原理做一次较为深入的研究。1.小孩的成绩小学的时候,课程很少,主要是语文和数学两门课,某一次期末考试后,小明他爸看...

2019-02-24 12:03:59 1652

greenDAODemo.zip

个人的greenDAO使用示例代码,可用于学习greenDAO,代码较为简单,仅供参考...............................................

2020-03-13

ESD集成电路保护研究

ESD集成电路保护研究,大家可以下来看看

2011-06-09

空空如也

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

TA关注的人

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