bob_fly1984
码龄12年
关注
提问 私信
  • 博客:347,905
    347,905
    总访问量
  • 61
    原创
  • 1,740,394
    排名
  • 115
    粉丝
  • 1
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2012-08-16
博客简介:

bob_fly1984的专栏

查看详细资料
个人成就
  • 获得78次点赞
  • 内容获得24次评论
  • 获得422次收藏
创作历程
  • 49篇
    2018年
  • 41篇
    2017年
  • 9篇
    2016年
  • 14篇
    2015年
  • 47篇
    2014年
  • 5篇
    2013年
  • 3篇
    2012年
成就勋章
兴趣领域 设置
  • 软件工程
    性能优化
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

342人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

uinput: 用户空间的输入子系统

原文地址uinput: 用户空间的输入子系统
转载
发布博客 2018.07.25 ·
483 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

《Android外部存储》

| 导语 外部存储作为开发中经常接触的一个重要系统组成,在Android历代版本中,有过许许多多重要的变更。我也曾疑惑过,为什么一个简简单单外部存储,会存在存在这么多奇奇怪怪的路径:/sdcard、/mnt/sdacrd、/storage/extSdCard、/mnt/shell/emulated/0、/storage/emulated/0、/mnt/shell/runtime/default/e...
转载
发布博客 2018.06.17 ·
770 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

android 存储系统学习

参考资料:android存储系统的历史变更app开发角度看存储系统vold处理流程Android M 外部存储剖析《Android外部存储》路径链接关系:/sdcard ---> /storage/self/primary/mnt/sdcard ---> /storage/self/primary12/storage/self/primary ---> /mnt/user/0/...
原创
发布博客 2018.06.17 ·
1925 阅读 ·
0 点赞 ·
1 评论 ·
5 收藏

mount namespace和shared subtrees

mount namespace是一个强大并且复杂的机制,用来为每个用户和每个容器创建文件系统树.它是一个很复杂的特性.在我们关于namespaces的一系列文章中,我们将会解开它的复杂性,我们将会深入的研究shared subtrees特性,这个特性以自动,受控的方式允许mount/unmount事件在mount namespaces之间传播事件.介绍mount namespace在2002出现在...
转载
发布博客 2018.06.17 ·
755 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Orientation类型传感器放弃,新方案改用旋转矩阵实现指南针

一、前言本篇blog是我的“Android进阶”的第一篇文章,从初学Android到现在断断续续也有4个多月时间了,也算是有了一些自己的心得体会,也能自己独立做一些东西了,这都要感谢我们公司的安卓开发璟博和无所不能的鸿洋给我的帮助和指点。本系列blog将记录我在开发中、学习中遇到的较为重点的、值得记录的知识点和技巧,简单的说就不再是基础教程了。由于项目中需要用到方向传感器,所以就借此机会来学一学A...
转载
发布博客 2018.06.17 ·
1288 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Fingerprint HAL

概要 如果一个设备有fingerprint sensor,那用户可以录入一个或多个指纹。使用指纹解锁设备或执行其他任务。 android系统使用Fingerprint HAL层和vendor-specific library和fingerprint sensor。 为了实现fingerprint HAL,        你必须在vendor-specific library里实现fingerpri...
翻译
发布博客 2018.05.19 ·
816 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

8974平台24位音乐播放在 Audio HAL层的实现

在mixer_path.xml中增加24位播放路由控制播放时路由:                         在部分增加关闭24位播放的路由的kctrl: 2.在audio_hw.h中增加24位对应usecase常量的定义在枚举类型audio_usecase_t的定义中增加如下语句:USECASE_AUDIO_PLAYBACK_DEEP
原创
发布博客 2018.05.19 ·
1025 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Android Sensor Framework 概览

http://kernel.meizu.com/android-sensor-framework.html1. OverviewAndroid Sensor Framework 的整体架构如图 1 所示:图片 1Android Sensor Framework 可以分为 3 大部分,各个部分的主要功能如下:SDK这一部分主要功能是为 Appl
转载
发布博客 2018.05.19 ·
870 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Binder系列7—framework层分析

framework/base/core/java/android/os/ - IInterface.java - IServiceManager.java - ServiceManager.java - ServiceManagerNative.java(包含内部类ServiceManagerProxy)framework/base/core/java/android/os/...
转载
发布博客 2018.05.19 ·
787 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

Binder系列6—获取服务(getService)

一、 获取服务在Native层的服务注册,我们选择以media为例来展开讲解,先来看看media的类关系图。1.1 类图点击查看大图图解:蓝色: 代表获取MediaPlayerService服务相关的类;绿色: 代表Binder架构中与Binder驱动通信过程中的最为核心的两个类;紫色: 代表注册服务和获取服务的公共接口/父类;二. 获取Media服务2.1 getMediaPlayerServi...
转载
发布博客 2018.05.18 ·
3088 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Binder系列10—总结

1. Binder概述从IPC角度来说:Binder是Android中的一种跨进程通信方式,该通信方式在linux中没有,是Android独有;从Android Driver层:Binder还可以理解为一种虚拟的物理设备,它的设备驱动是/dev/binder;从Android Native层:Binder是创建Service Manager以及BpBinder/BBinder模型,搭建与binde...
转载
发布博客 2018.05.18 ·
401 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Binder系列8—如何使用Binder

一、Native层Binder源码结构:ClientDemo.cpp: 客户端程序ServerDemo.cpp:服务端程序IMyService.h:自定义的MyService服务的头文件IMyService.cpp:自定义的MyService服务Android.mk:源码build文件1.1 服务端#include "IMyService.h"int main() { //获取servi...
转载
发布博客 2018.05.18 ·
537 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Binder系列9—如何使用AIDL

一、AIDL1.1 Server端RemoteService.java本例是为了演示进程间的通信机制,故需要将Service与Activity处于不同的进程,需要在AndroidManifest.xml中,把service配置成android:process=":remote",进程也可以命名成其他的。public class RemoteService extends Service { ...
转载
发布博客 2018.05.18 ·
349 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Binder系列5—注册服务(addService)

framework/native/libs/binder/ - Binder.cpp - BpBinder.cpp - IPCThreadState.cpp - ProcessState.cpp - IServiceManager.cpp - IInterface.cpp - Parcel.cppframeworks/native/include/binder/ ...
转载
发布博客 2018.05.18 ·
868 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

android FDE规范

Full-Disk EncryptionIN THIS DOCUMENTHow Android full-disk encryption worksFlowsEncrypt a new device with forceencryptEncrypt an existing deviceStarting an encrypted device with default encryptionStart...
转载
发布博客 2018.05.18 ·
1252 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

请求指纹认证授权秘钥使用

        当你在androidkeystore中生成或导入密钥时,你可以指定密钥只在用户经过身份验证时被授权使用。用户通过他们的安全锁屏凭证(模式/pin/密码、指纹)的子集进行身份验证。        用户身份认证授权一个秘钥相关的加解密操作。当前这样授权的唯一方法是指纹授权。        如果将key存放在AndroidKeyStore中,可以为key设置一些保护(KeyProtect...
原创
发布博客 2018.05.18 ·
2665 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

android FDE功能介绍

在Android 5.0之前,vold中的磁盘加密功能FDE(full disk encryption),只是对用户密码及SALT采用了scrypt算法来生成加密密钥(4.4以前使用pkdf2,强度更低),这些只是增加了暴力破解的难度,但风险依然很高。比如可以获取分区镜像 前1K 及 后16K 的数据 (Android FDE的相关加密密钥默认存储在分区尾部的16 KBytes中,前4K是EXT4...
转载
发布博客 2018.05.18 ·
4468 阅读 ·
1 点赞 ·
1 评论 ·
7 收藏

base64

Base64是一种用64个字符来表示任意二进制数据的方法。用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。Base64的原理很简单,首先,准备一个包含64个字符的数组:['A', 'B', 'C', ...
转载
发布博客 2018.04.11 ·
204 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

hmac介绍

通过哈希算法,我们可以验证一段数据是否有效,方法就是对比该数据的哈希值,例如,判断用户口令是否正确,我们用保存在数据库中的password_md5对比计算md5(password)的结果,如果一致,用户输入的口令就是正确的。为了防止黑客通过彩虹表根据哈希值反推原始口令,在计算哈希的时候,不能仅针对原始输入计算,需要增加一个salt来使得相同的输入也能得到不同的哈希,这样,大大增加了黑客破解的难度。...
转载
发布博客 2018.04.11 ·
1139 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数字证书原理,公钥私钥加密原理 - 因为这个太重要了

文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识      这部分内容主要解释一些概念和术语,最好是先理解这部分内容。1.1、公...
转载
发布博客 2018.04.11 ·
315 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多