自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

飞翔的小鸟

只为自由

  • 博客(181)
  • 收藏
  • 关注

转载 Android permission权限详解

权限是一种安全机制。Android权限主要用于限制应用程序内部某些具有限制性特性的功能使用以及应用程序之间的组件访问。在Android开发中,基本上都会遇到联网的需求,我们知道都需要加上联网所需要的权限:<uses-permission android:name="android.permission.INTERNET" />实际上,在开发过程中,当我们使用了某...

2020-04-16 16:22:59 1863

原创 linux shell 字符串中指定字符替换

#Echo “2006-11-21 22:16:30” | sed ‘s/-//g’ | sed ‘s/ //g’ | sed ‘s/://g’得到的结果就是:20061121221630$text=" 123 456 "# 这个写法,保证了得到正确的结果。text=`echo $text | sed -e 's/^[ \t]*//g'`# 这些方法没有测试,写法参照上面的...

2020-04-09 20:27:45 7569

转载 java线程池ThreadPoolExecutor类使用详解

转自:https://www.cnblogs.com/dafanjoy/p/9729358.html在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。而线程池不允许使用Executors去创建,而要通过ThreadPoolExec...

2019-08-20 15:55:49 874

原创 Java.util.concurrent之 Executor框架与线程池

Executor的继承树关系:Executor框架是java 5 中引入的,内部使用了线程池机制。Executor框架包括:Executor, ExecutorService,Executors,ThreadPoolExecutor等。Executor ——接口public interface Executor { void execute (Runnable command...

2019-08-20 10:39:28 390

转载 Android中关于屏幕的三个小众知识(宽屏适配、禁止截屏和保持屏幕常亮)

转自:https://www.jb51.net/article/129633.htm前言宽屏适配、禁止截屏和保持屏幕常亮,这三个与屏幕有关的 Android 开发小众知识,说不定什么时候就派上用场。宽屏适配Android的屏幕适配一直以来都在折磨着我们Android开发者,越来越多的手机厂商趋向于全面屏设计,比如今年出厂的 18.5:9 屏幕比例的三星 Galaxy S8 手机,前...

2019-07-11 10:11:36 322

转载 android eventbust使用详解

转自:https://www.jianshu.com/p/e7d5c7bda7831、EventBus 简介EventBus是一种用于Android的事件发布-订阅总线,由GreenRobot开发,Gihub地址是:EventBus。它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。1.1 三个角色Event:事...

2019-06-21 14:21:26 276

转载 Android 匿名共享内存C接口分析

转自:https://blog.csdn.net/yangwen123/article/details/11757487在Android 匿名共享内存驱动源码分析中详细分析了匿名共享内存在Linux内核空间的实现,虽然内核空间实现了匿名共享内存,但仍然需要在用户空间为用户使用匿名共享内存提供访问接口。Android系统在用户空间,C++应用程序框架层,Java层分别提供了访问接口本文首...

2019-05-31 16:23:54 439

转载 Android 匿名共享内存C++接口分析

转自:https://blog.csdn.net/yangwen123/article/details/11768329在上一篇Android 匿名共享内存C接口分析中介绍了Android系统的匿名共享内存C语言访问接口,本文在前文的基础上继续介绍Android系统的匿名共享内存提供的C++访问接口。在C++层通过引入Binder进程间通信机制可以实现跨进程访问匿名共享内存。我们知道Andro...

2019-05-31 16:04:56 319

转载 Android 匿名共享内存Java接口分析

转自:https://blog.csdn.net/yangwen123/article/details/9319773在Android 匿名共享内存驱动源码分析中介绍了匿名共享内存的驱动实现过程,本文在Android匿名共享内存驱动基础上,介绍Android匿名共享内存对外Android系统的匿名共享内存子系统的主体是以驱动程序的形式实现在内核空间的,同时在应用程序框架层提供了Java调用接口...

2019-05-31 15:19:51 261

转载 android 共享内存(ShareMemory)的实现

转自:https://www.jianshu.com/p/ed87b12dfe0dAndroid 几种进程通信方式跨进程通信要求把方法调用及其数据分解至操作系统可以识别的程度,并将其从本地进程和地址空间传输至远程进程和地址空间,然后在远程进程中重新组装并执行该调用。然后,返回值将沿相反方向传输回来。Android 为我们提供了以下几种进程通信机制(供开发者使用的进程通信 API)对...

2019-05-31 14:45:39 4501

转载 Android匿名共享内存(Ashmem)原理

转自:https://www.jianshu.com/p/d9bc9c668ba6阅读之前,不妨先思考一个问题,在Android系统中,APP端View视图的数据是如何传递SurfaceFlinger服务的呢?View绘制的数据最终是按照一帧一帧显示到屏幕的,而每一帧都会占用一定的存储空间,在APP端执行draw的时候,数据很明显是要绘制到APP的进程空间,但是视图窗口要经过SurfaceFl...

2019-05-31 11:16:23 793

转载 Android:Camera2开发详解(上):实现预览、拍照、保存照片等功能

转自:https://www.jianshu.com/p/0ea5e201260f前言在前几篇文章中介绍了如何调用系统相机拍照和使用Camera1的实现自定义相机拍照、人脸检测等功能文章传送门:Android:调用系统相机实现拍照+裁切(兼容7.0以上系统) Android: Camera相机开发详解(上) —— 知识储备 Android: Camera相机开发详解(中) ——...

2019-05-31 10:12:30 7068

转载 Android: Camera相机开发详解(上) —— 知识储备

转自:https://www.jianshu.com/p/f8d0d1467584前言 上一篇文章介绍了如何调用系统相机进行拍照裁剪等功能,一般情况下这些已经能满足我们的需求了。但是在有些场景和特殊需求下,比如要进行人脸检测、要不间断地抓取多张照片等等,那就需要使用原生Camera来进行开发啦 这里并不打算讲如何用代码去实现,而是先给小伙们介绍相关的知识点,等对这些知识有了大致...

2019-05-31 10:10:13 1045

转载 EventBus源码详解

转自:https://www.jianshu.com/p/6da03454f75a在进入主题之前,我们先保持着这样几个疑问,EventBus的使用三要素里,我们为什么要去定义事件方法,并且用到了@subscribe()注解? EventBus.getDefault().register(Object)这行代码到底干了什么?发送事件的时候又做了哪些操作?为什么要在onDestory()做解除绑定...

2019-04-29 20:17:59 255

转载 EventBus 3.0使用详解

转自:https://www.jianshu.com/p/f9ae5691e1bb01 前言当我们进行项目开发的时候,往往是需要应用程序的各组件、组件与后台线程间进行通信,比如在子线程中进行请求数据,当数据请求完毕后通过Handler或者是广播通知UI,而两个Fragment之家可以通过Listener进行通信等等。当我们的项目越来越复杂,使用Intent、Handler、Broadca...

2019-04-29 18:22:25 169

转载 HashMap、Hashtable、ConcurrentHashMap的原理与区别

转自:https://www.cnblogs.com/heyonggang/p/9112731.html下面直接来干货,先说这三个Map的区别:HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsi...

2019-04-08 20:11:28 175

转载 Android中用到的MVP模式

转自:https://blog.csdn.net/weixin_28774815/article/details/80960779MVP:View不直接与Model进行交互,而是通过presenter来与Model交互,来达成的一种间接交互。presenter与View的交互是通过接口来进行的,更有利于添加单元测试通常View与Precenter是一对一的,但是复杂的view可以绑定多...

2019-04-08 18:09:07 207

转载 Android 设计模式之MVC,从一个实例中来理解MVC

转自:https://blog.csdn.net/qq_36510659/article/details/79073021MVC的介绍MVC是Model-View-Controller的简称Model:模型层,负责处理数据的加载或者存储View:视图层,负责界面数据的展示,与用户进行交互Controller:控制器层,负责逻辑业务的处理那我们为什么要用到MVC模式呢?1...

2019-04-08 17:45:19 368

转载 基于Proxy思想的Android插件框架

转自:http://www.cnblogs.com/yxwkf/p/5196235.html意义研究插件框架的意义在于下面几点:减小安装包的体积,通过网络选择性地进行插件下发 模块化升级。减小网络流量 静默升级,用户无感知情况下进行升级 解决低版本号机型方法数超限导致无法安装的问题 代码解耦现状Android中关于插件框架的技术已经有过不少讨论和实现。插件通常打包成apk...

2019-04-04 18:42:51 199

转载 Android应用架构之MVVM模式

转自:https://blog.csdn.net/u012317510/article/details/80247756早期的Android应用开发中,Activity/Fragment承担了过多的职责,它们不仅负责了应用界面的显示,而且负责了业务逻辑的处理。这样一来,Activity/Fragment很容易就变得臃肿、复杂,造成应用难以测试、维护和扩展。随着Android应用开发技术的不断发...

2019-04-04 16:40:09 371

转载 Android开发之MVVM新姿势探索

转自:https://github.com/linyongsheng/android-arch-mvvm1、同一个世界,同一个轮回网上有不少关于Android架构的讨论,如MVC, MVP,MVVM。本质上都是一种代码架构思想,并没有明显的孰优孰劣,关键看应用的场景以及实现的细节。或许你跟我一样,写过很多代码,也重构过很多次。项目代码往往起初是混沌状态,再渐至清晰明朗,又随着业务发展及程序...

2019-04-04 16:09:37 449

转载 Android App的设计架构:MVC,MVP,MVVM与架构经验谈

转自:https://www.cnblogs.com/wytiger/p/5305087.html和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于App的架构如何设计: 我的App需要应用这些设计架构吗? MVC,MVP等架构讲的是什么?区别是什么? 本文就来带你分析一下这几个架构的特性,优缺点,以及App架构设计中应该...

2019-04-03 20:56:25 189

转载 Android之内存管理及优化

转自  https://www.kotlintc.com/articles/2311?fr=sidebar一、Android内存基础物理内存与进程内存物理内存即移动设备上的RAM,当启动一个Android程序时,会启动一个Dalvik VM进程,系统会给它分配固定的内存空间(16M,32M不定),这块内存空间会映射到RAM上某个区域。然后这个Android程序就会运

2018-01-05 17:18:38 2174

原创 Android应用程序activity启动流程简介

无论是通过点击应用程序图标来启动Activity,还是通过Activity内部调用startActivity接口来启动新的Activity,都要借助于应用程序框架层的ActivityManagerService服务进程。Service也是由ActivityManagerService进程来启动的。在Android应用程序框架层中,ActivityManagerService是一个非常重要的接口,它

2017-08-05 17:14:49 541

转载 C语言之尾队列tailq

转载链接: http://blog.csdn.net/gujing001/article/details/18667485queue和list的结构定义和操作都在'sys/queue.h'中完成, 主要定义了下面四种数据结构:单向列表(single-linked lists)单向尾队列(single-linked tail queue)列表(lists)尾队列(tail

2016-12-19 15:25:00 1997

转载 Android Fingerprint -- HAL层的初始化工作

转自: http://www.cnblogs.com/happy-leon/p/5655614.html   http://blog.csdn.net/liuxd3000/article/details/42424179序文:如何调用Hal层库文件每个Hal层库文件有一个入口,即HAL_MODULE_INFO_SYM,上层在调用hal层库文件时会在/system/lib/hw/下面

2016-12-16 16:13:27 7836

转载 Android 密钥库系统

利用 Android 密钥库系统,您可以在容器中存储加密密钥,从而提高从设备中提取密钥的难度。在密钥进入密钥库后,可以将它们用于加密操作,而密钥材料仍不可导出。此外,它提供了密钥使用的时间和方式限制措施,例如要求进行用户身份验证才能使用密钥,或者限制为只能在某些加密模式中使用。如需了解详细信息,请参阅安全功能部分。密钥库系统由 KeyChain API 以及在 Android 4.3(API

2016-12-02 15:14:12 5771 1

转载 Android Fingerprint -- Enroll流程

Enroll流程主要的工作是在hal层以下完成的。对于应用层和framwork层的流程就不做详细分析了。一、preEnroll点击设置中的添加指纹,setting就会调到fingerprintd的preEnroll接口。preEnroll会在指纹TA中生成并保存一个64位的随机数。这个随机数有两个用途:返回给上层,用于填充enroll中的authenticated to

2016-10-18 15:01:01 7334 2

转载 C语言opendir()函数:打开目录函数

相关函数:open, readdir, closedir, rewinddir, seekdir, telldir, scandir头文件:#include   #include 定义函数:DIR * opendir(const char * name);函数说明:opendir()用来打开参数name 指定的目录, 并返回DIR*形态的目录流, 和open()类似, 接

2016-10-10 16:22:29 20166

转载 snprintf()函数使用方法

众所周知,sprintf不能检查目标字符串的长度,可能造成众多安全问题,所以都会推荐使用snprintf.自从snprintf代替了sprintf,相信大家对snprintf的使用都不会少,函数定义如下:int snprintf(char*str, size_t size,constchar*format, ...);函数说明:最多从源串中拷

2016-10-10 16:18:53 71695 2

转载 C语言fread()函数:读文件函数(从文件流读取数据)

相关函数:fopen, fwrite, fseek, fscanf头文件:#include 定义函数:size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);函数说明:fread()用来从文件流中读取数据. 参数stream 为已打开的文件指针, 参数ptr 指向欲存放读取进来的数据空间,

2016-10-10 15:43:37 17234

转载 C语言fclose()函数:关闭文件流

头文件:#include fclose()函数用来关闭当前文件流,其原型为:    int fclose(FILE * stream);【参数】stream为文件流指针。【返回值】若关文件动作成功则返回0,有错误发生时则返回EOF,并把错误代码存到errno。fclose()用来关闭fopen()打开的文件,此动作会让缓冲区内的数据写入文件中,并释放系统所提供的

2016-10-10 15:34:18 15155 1

转载 C语言的fopen函数(文件操作/读写)

头文件:#include fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:    FILE * fopen(const char * path, const char * mode);【参数】path为包含了路径的文件名,mode为文件打开方式。mode有以下几种方式:打开方式说明r以只读方式打开文

2016-10-10 15:32:25 30180

转载 C语言remove()函数:删除文件或目录

头文件:#include remove()函数用于删除指定的文件,其原型如下:    int remove(char * filename);【参数】filename为要删除的文件名,可以为一目录。如果参数filename 为一文件,则调用unlink()处理;若参数filename 为一目录,则调用rmdir()来处理。【返回值】成功则返回0,失败则返回-1,错误原因

2016-10-10 15:25:46 22301

转载 alpha版、beta版、rc版的意思

很多软件在正式发布前都会发布一些预览版或者测试版,一般都叫“beta版”或者 “rc版”,特别是开源软件,甚至有“alpha版”,下面来解释一下各个版本的意思。alpha版:内部测试版。α是希腊字母的第一个,表示最早的版本,一般用户不要下载这个版本,这个版本包含很多BUG,功能也不全,主要是给开发人员和 测试人员测试和找BUG用的。beta版:公开测试版。β是希腊字母的第二个,顾名

2016-10-09 10:27:58 370

转载 java动态代理机制

动态代理其实就是java.lang.reflect.Proxy类动态的根据您指定的所有接口生成一个class byte,该class会继承Proxy类,并实现所有你指定的接口(您在参数中传入的接口数组);然后再利用您指定的classloader将 class byte加载进系统,最后生成这样一个类的对象,并初始化该对象的一些值,如invocationHandler,以即所有的接口对应的Method

2016-10-08 15:57:57 355

转载 Android反射机制实现与原理

本文介绍Android反射机制实现与原理,在介绍之前,要和Java进行比较,所以先看下Java中的反射相关知识:一、反射的概念及在Java中的类反射  反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在计算机科学领域,反射是一类应用,它们能够自描述和自控制。这类应用通过某种机制来实现对自己行为的描述和检测,并能根据自身行为的状态和结果,调整或修改应用所描述行为的

2016-09-30 11:18:23 546

转载 C语言error返回值简单列表

下面是error相关的返回值   1#ifndef _ASM_GENERIC_ERRNO_BASE_H   2#define _ASM_GENERIC_ERRNO_BASE_H   3   4#define EPERM            1      /* Operation not permitted */操作禁止   5#define ENOENT          

2016-09-30 10:34:59 3609

转载 android IPC通信中的UID和PID识别

IPCThreadState对象维护了2个变量            pid_t               mCallingPid;            uid_t               mCallingUid;    从变量名称来看,这2个变量保存了进程的PID和UID,并且由于这两个变量由IPCThreadState对象维护,可见它们是与IPC相关的。具体它们

2016-09-12 09:39:53 557

转载 大数据核心技术ETL简介

前几篇文章都是根据自己所见所知,在前人的基础上加以整合,对大数据概念有了初步的了解。接下来的四篇文章,抛开大数据的概念与基本知识,进入核心。我们从:数据采集、数据存储、数据管理、数据分析与挖掘,四个方面讨论大数据在实际应用中涉及的技术与知识点。核心技术架构挑战:1、对现有数据库管理技术的挑战。2、经典数据库技术并没有考虑数据的多类别(variety)、SQL(结构化

2015-08-25 14:53:12 10757

空空如也

空空如也

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

TA关注的人

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