- 博客(244)
- 资源 (12)
- 收藏
- 关注
转载 NFC Enable
认识NFC系统是如何工作的,最好的方法莫过于熟悉NFC各个流程,本篇就介绍下NFC使能的流程。NFC的上层服务 com.android.nfc 启动随着使能整个NFC系统,通过JNI层的 NativeNfcManager.nfcManager_doInitialize()初始化底层的相关so库。整个使能的过程中,需要记住层层向下设置的回调函数,这些回调都是以后底层数据上报的通路。Enable的详细流程图如下:上面红色字体标注的相关函数在整个NFC系统中是很重要的回调。打开NFC模块的相关操作,具
2021-08-05 14:39:54 282
转载 NFC Discovery
NFC系统在初始化完成后EnableDisableTask.enableInternal()会默认开启扫描,应用apk也可以主动发起搜索扫描NFC设备NfcAdapter. resumePolling()。各个指令的下发无非就是根据指令的不同封装不同的数据,最后通过mHal->write()将数据下发到底层NFC芯片模块,芯片模块解析下发的数据来执行不同的动作,并将指令执行的结果及时上报。下图为NFC搜索指令的一个完整的时序图:从该时序图可以看出Discovery指令执行结果的上报经过线.
2021-08-05 14:37:59 343
转载 NFC 标签调度系统(Intent发布)
NFC Intent发布系统Intent发布系统也被称为标签调度系统,调度系统定义了三种类型的action,见下表:ACTIVITY_INTENT_ACTION 类型 作用 优先级ACTION_NDEF_DISCOVERED 标签中含有NDEF数据且为公认类型 高ACTION_TECH_DISCOVERED 标签中没有NDEF数据却是已定义的标签技术 中ACTION_TAG_DISCOVERED 前两个action都没有启动,则启动这个 低——...
2021-08-05 14:33:56 396
转载 NFC 前台发布系统
NFC 前台发布系统NFC扫描到的标签Tag最终是需要上报到应用Application进行数据的读写操作。上报的方式现在主要有两种:前台发布、Intent过滤发布。我们先来分析下NFC前台发布系统是如何工作的。Application首先需要获取NFC的适配器 NfcAdapter实类,通过适配器对外提供的API:enableForegroundDispatch()、disableForegroundDispatch()来打开、关闭前台发布系统。这两个接口必须在Activity处于运行状态时调用,即A
2021-08-05 14:20:38 218
原创 Golang教程:(二)Hello World
package main //1import "fmt" //2func main() { //3 fmt.Println("Hello World") //4}这里简要解释每一行都做了什么。我们会在以后的教程中更详细地介绍它们。package main:每个 Go 文件都必须以 package name 语句开头。包(package)提供了代码封装和重用。这
2018-02-02 17:18:04 1058
原创 Golang教程:(一)介绍和安装
这是本Golang系列教程的第一篇。什么是GolangGolang 又称为 Go,是由 Google 开发的一种开源的、编译型的、静态类型的编程语言。Golang 的主要目的是使开发高可用性和高扩展性的Web应用程序变得简单。为什么选择Golang为什么应该选择 Golang 作为服务器端的开发语言,而不是可以做同样事情的 python,ruby,nod
2018-02-02 17:15:09 1736
转载 Unity3D 游戏贴图(法线贴图,漫反射贴图,高光贴图)
原帖网址http://www.u3dpro.com/read.php?tid=207 感谢jdk900网友的辛苦编写 我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性。在这里我将列举一些贴图,并且初步阐述其概念,理解原理的基础上制作贴图,也就顺手多了。我在这里主要列举几种UNITY3D中常用的贴图,与大家分享,希
2016-04-19 17:42:07 8033
转载 Linux平台下7个实用的软件
很多人都在不同的平台使用很多商业软件来完成不同的工作,这其实是非常不方便的,因为有时这些软件也并不好购买。今天在本文中,小编为大家列出了7个Linux平台下非常有用的软件,这其中大部分都是跨平台的。还有其他一些适用单一的软件,但今天只列出了一些非常相似的可替代的软件。不想错过这些不错的软件?那你还在等什么,还不赶紧一起来看看!OpenProjOpenProj是一款免费并且开源的桌面应用
2014-12-11 17:25:31 5931
转载 Raket分析(一)
简介RakNet 已经成功地在Android平台上测试成功。RakNet的文档很多,实现起来很简单,下面对Raknet功能细节进行详细了解。详情1、RakNet使用哪些数据结构?结构文件DS_BinarySearchTree.h二叉搜索树,以及AVL平衡二叉搜索树DS_BPlusTree.hB+树,用于快速查询,删除,和插入D
2014-12-04 14:48:17 13498
原创 RakNet 伪随机数算法
好久没写博客了,RakNet开源以后,自己一直都很想仔细的学习一下它的代码,今天难得有点时间拜读一下源代码。废话连篇啊。。。。。。 先说一下RakNet的随机数算法,/source/Rand.cpp中,它引用了MersenneTwister算法,Mersenne Twister算法译为马特赛特旋转演算法,是伪随机数发生器之一,其主要作用是生成伪随机数。此算法是Makoto Mats
2014-12-02 15:34:03 5804
原创 通过LeakDiag查看内存泄漏
使用C或者C++编程的时候,最担心的应该还是内存泄漏问题,测试人员通常专注于功能/性能测试,如果有不明显的内存泄漏,可能要在程序发布后几天,甚至更久才会发现故障。因此,检查C/C++程序的内存泄漏,开发人员需要自己把好这个关。检测内存泄漏的工具有很多,大致分为二种,一种是嵌入程序的,需要修改源码;一种是attach到进程,实时监测的。LeakDiag是微软的一款内存泄漏检测工具,免费的,不
2013-10-09 17:24:36 9101
转载 内存泄露检测工具比较
1. ccmalloc-Linux和Solaris下对C和C++程序的简单的使用内存泄漏和malloc调试库。 2. Dmalloc-Debug Malloc Library. 3. Electric Fence-Linux分发版中由Bruce Perens编写的malloc()调试库。 4. Leaky-Linux下检测内存泄漏的程序。
2013-10-09 17:15:58 5211
转载 基于XMPP协议的手机多方多端即时通讯方案
基于XMPP协议的手机多方多端即时通讯方案................................................................. 1目 录.........................................................................................................
2013-10-08 14:04:35 7119
转载 10款免费且开源的项目管理工具
在任何一个项目开发或设计中,项目管理被认为最重要的过程之一,因此,选择一款适宜的项目管理工具尤为重要。项目管理是指管理项目计划、定义、监控、控制以及确认交付的过程,因此它的优势也是被公认的。随着各个领域特定项目管理需求的提升,这就需要一个更好的、免费的项目管理工具来管理。因此一款高效的、良好的项目管理必须具备快速的、强大的且包含以下功能:调度、成本控制、资源分配、预算管理、文档、协作以及沟通。
2013-09-16 11:13:27 6078
转载 C语言深度解剖读书笔记(1.关键字的秘密)
开始本节学习笔记之前,先说几句题外话。其实对于C语言深度解剖这本书来说,看完了有一段时间了,一直没有时间来写这篇博客。正巧还刚刚看完了国嵌唐老师的C语言视频,觉得两者是异曲同工,所以就把两者一起记录下来。等更新完这七章的学习笔记,再打算粗略的看看剩下的一些C语言的书籍。本节知识:1.c语言中一共有32个关键字,分别是:auto、int、double、long、char、short、
2013-09-10 11:21:46 5162
转载 Google Chrome中的高性能网络 (三)
使用预连接优化了TCP连接管理已经预解析到了主机名,也有了由OmniBox和Chrome Predictor提供信号,预示着用户未来的操作。为什么再进一步连接到目标主机,在用户真正发起请求前完成TCP握手呢?这样就可省掉了另一个往返的延迟,轻易地就能为用户节省到上百毫秒。其实,这就是TCP预连接的工作。 通过访问chrome://dns 就可以看到TCP预连接的使用情况。
2013-09-10 11:08:47 5701
转载 Google Chrome中的高性能网络(二)
Chrome Predictor的预测功能优化Chrome会随着使用变得更快。 它这个特性是通过一个单例对象Predictor来实现的。这个对象在浏览器内核进程(Browser Kernel Process)中实例化,它唯一的职责就是观察和学习当前网络活动方式,提前预估用户下一步的操作。下面是一个示例:用户将鼠标停留在一个链接上,就预示着一个用户的偏好以及下一步的浏览行为。这时Chro
2013-09-10 11:07:55 6290
转载 Google Chrome中的高性能网络(一)
以下内容是"The Performance of Open Source Applications" (POSA)的草稿, 也是The Architecture of Open Source Applications的后继者. POSA囊括了一批针对性能的优化和设计,以及开发过程中的性能管理等内容的论文,预计在2013年春天发售【译注:国内有得等了】。By Ilya Grigorik on J
2013-09-10 11:07:12 6214 1
转载 MarioTCP: Multi Libvent TCP Server 一个高性能的TCP服务器
MrioTCP,超级马里奥,顾名思义,他不仅高效,而且超级简易和好玩。同时他可以是一个很简洁的Linux C 开发学习工程。毫不夸张的说,如果全部掌握这一个工程,你会成为一个Linux C的牛人;当然,你也可以通过源码包的mario.c(maritcp服务器示例程序)来学习,可以很快入门上手进行Linux C开发。经过两个多月的测试(编写c++客户端测试及调优系统参数),测试结果得到单机最大带
2013-09-10 11:05:17 5625
转载 50个关于人脸检测/识别的API、库和软件
自从谷歌眼镜被推出以来,围绕人脸识别,出现了很多争议。我们相信,不管是不是通过智能眼镜,人脸识别将在人与人交往甚至人与物交互中开辟无数种可能性。为了帮助研究过程中探索人脸识别,我们列出以下人脸检测和识别API。希望有所帮助!Face Recognition- 拉姆达实验室斯蒂芬弄的。示例代码和图形演示点击http://api.lambdal.com/docs,我们的API提供了
2013-08-20 14:55:32 7102
转载 Visual Studio 那些隐藏的调试功能
微软互联网开发支持“Visual Studio 是一个强大的调试工具,里面很多隐藏功能少有人问津,但是在特定场景可以节省你很多时间,本文主要介绍一些Visual Studio调试相关的隐藏功能,欢迎大家补充。 运行到光标(Run to cursor)大多数人用Visual Studio在调试程序的时候先在程序开始的时候设置一个断点,然后依次F10/F11到自己想要查看的
2013-08-05 13:54:00 5206
转载 RSA算法原理
如果你问我,哪一种算法最重要?我可能会回答“公钥加密算法”。因为它是计算机通信安全的基石,保证了加密数据不会被破解。你可以想象一下,信用卡交易被破解的后果。进入正题之前,我先简单介绍一下,什么是”公钥加密算法”。一、一点历史1976年以前,所有的加密方法都是同一种模式:(1)甲方选择某一种加密规则,对信息进行加密;(2)乙方使用同一种规则,对信息进行解密。由于加密和解密使用
2013-08-05 11:13:45 5172
转载 Chromium界面分析小结(十)界面构造主要类和函数
1. BrowserWindowGtk这是BrowserWindow的一个GTK+实现版本,它创建了整个CR窗口,在类中有许多访问控件的接口LocationBar*GetLocationBar()、TabStripGtk* tabstrip()、BrowserTitlebar* titlebar()、BrowserToolbarGtk*GetToolbar(),通过返回的指针可以
2013-08-01 15:28:54 5347
转载 Chromium界面分析小结(九)命令执行过程
在chromium中所有命令都是由命令ID表示,ID列表保存在src/chrome/app/chrome_command_ids.h文件中,该文件内包含了所有Chromium可以理解的命令ID。当命令被激活时,Chromium会通过代理一层层传递,直到传递到位于chromium/src/chrome/browser/ui/browser_command_controller.cc中的Browser
2013-08-01 15:27:49 4660
转载 Chromium界面分析小结(八)字符串资源管理方法
Chromium具有多语言自动切换功能,程序启动时会根据系统的语言设置来选择界面语言。英文的字符串和ID号的对应关系在文件src/chrome/app/generated_resources.grd和chromium_strings.grd,该文件也是xml描述的,在文件中还记录了所有其他语言翻译过的字符串资源文件位置:也记录了字符串资源文件输出路径:,编译时grit工具会根据
2013-08-01 15:27:26 5297
转载 Chromium界面分析小结(七)图片资源管理方法
Chromium中所有的图片资源都是png格式的,在linux下这些图片由grit工具打包成pak格式并附有每个资源的ID,Chromium在运行时可以根据ID获取对应的图片。 在文件src/chrome/app/theme/theme_resources.grd中定义了所有的图片文件的ID号,编译时grit工具根据此grd文件生成头文件src/out/Debug/obj/gen/c
2013-08-01 15:27:02 1172
转载 Chromium界面分析小结(六)工具菜单结构
Chromium的菜单实现考虑到跨平台的要求,使用了一层抽象模型(SimpleMenuModel),所有菜单模型都继承自这个类,各平台实现时需要根据提供的模型构造对应的菜单。这个工具菜单模型是WrenchMenuModel类,也继承自SimpleMenuModel。Chromium在Linux平台使用了GTK+来创建界面,也就由MenuGtk类负责菜单模型的解释和构造。所有的菜单都要经过**Men
2013-08-01 15:26:10 2036
转载 Chromium界面分析小结(五)地址栏结构
地址栏位于工具栏中间,它是个很复杂的物件,虽然样子看上去很简单,但是功能的确很强大,所以结构就复杂了。在地址栏最左侧是显示页面信息的图标,如果是经过https加密传输的页面,图标显示为绿色锁形,并在右侧显示网站单位信息,如果不是加密页面则显示空白文档图标。点击这个图标后会弹出该页面对应的权限(HTML5新增功能)和详细安全信息(加密算法和认证证书)。紧挨着右边是一个tab_to_search的
2013-08-01 15:25:36 904
转载 Chromium界面分析小结(四)工具栏结构
工具栏左侧是常用的命令按钮,中间是最重要的地址栏,右侧是插件按钮和工具菜单按钮。整个工具栏由一个GtkHBox容器包裹,四个部分中只有地址栏是具有扩展属性,可以跟随窗口大小改变。
2013-08-01 15:24:51 958
转载 Chromium界面分析小结(三)标题栏结构
标题栏主要包括所有的标签,最小化、最大化和关闭按钮,因为Ubuntu可以由用户选择这些按钮的位置,所以Chromium添加了两个放置这些按钮的容器以方便改变位置。放置头像的容器也有左右两个,因为隐身模式和普通模式的头像位置不同
2013-08-01 15:24:30 967
转载 Chromium界面分析小结(二)主界面结构
因为GTK+库中提供了丰富的界面布局控件,使得控件位置控制非常方便,所以Chromium几乎全部使用了GTK+的原生布局控件,主要包括:GtkAlignment、GtkVBox、GtkHBox和GtkFixed。 整个主界面的内容从上到下依次是菜单栏、标题栏、工具栏、书签栏和最重要的网页内容区域。在Ubuntu中所有程序的菜单栏都位于屏幕最上方,而在其他的桌面环境下菜
2013-08-01 15:23:45 990
转载 Chromium界面分析小结(一)界面构造调用层次
在chromium中真正承担浏览器窗口创建的类是BrowserWindowGtk,它的Init成员函数完成了界面创建的大部分任务。在Init函数中,创建主窗口后,添加控件的任务都在InitWidgets函数中完成,主要动作有:创建程序菜单栏、创建标题/标签栏、创建工具/地址栏、创建书签栏。
2013-08-01 15:22:49 853
转载 直接拿来用!最火的iOS开源项目(三)
相比Android,GitHub上的iOS开源项目更可谓是姹紫嫣红。尽管效果各异,但究其根源,却都是因为开发者本身对于某种效果的需求以及热爱。在“直接拿来用!最火的iOS开源项目”系列文章(一)、(二)中,我们已经相继盘点了40个深受开发者喜爱的iOS开源项目,在本文中,我们将继续细数那些能够带给iOS开发者们无限灵感、产生非常奇妙的效果的iOS开源项目。41. DCIntrosp
2013-07-17 16:24:31 1427
原创 VLC播放基于HLS协议m3u8文件的几个问题
最近比较忙,刚刚接手一个电视视频直播与点播的项目,服务器端视频流是基于HLS协议,关于HLS协议的相关介绍这里就不介绍了,请参考Apple的官网。刚接手项目的时候,试了几种开源播放器,MPlayer、VLC、ffplayer等,效果都不怎么样,播放m3u8 list的时候多多少少都有些问题,经过权衡以后,还是选择了VLC,看了大约一周VLC的源码,对VLC的源码架构有了一些了解,其中重点看了播放m
2013-07-02 17:08:50 16698 30
转载 直接拿来用!最火的iOS开源项目
摘要:iOS每一次的改变,总会引发iOS开源项目的演变,从iOS 1.x到如今的iOS 7,有的项目已被弃用,有的则继续发扬光大,新项目更是层出不穷。在本文中,我们将继续为大家介绍20个在GitHub上深受开发者欢迎的iOS开源项目。“每一次的改变总意味着新的开始。”这句话用在iOS上可谓是再合适不过的了。GitHub上的iOS开源项目数不胜数,iOS每一次的改变,总会引发iOS开源项目的
2013-06-19 13:45:17 966
转载 Fiddler (五) Mac下使用Fiddler
Fiddler是用C#开发的。 所以Fiddler不能在Mac系统中运行。 没办法直接用Fiddler来截获MAC系统中的HTTP/HTTPS, Mac 用户怎么办呢?Fiddler可以允许“远程连接”。 我们可以利用这个间接来实现Fiddler捕获Mac系统发出的HTTP/HTTPS 阅读目录:使用虚拟机虚拟机的网络使用“Bridged” 模式配置虚拟机上的Fid
2013-06-17 11:35:40 932
转载 Fiddler (三) Composer创建和发送HTTP Request
之前已经写过两篇Fiddler的文章了,分别是【Fiddler教程】【Fiddler script用法】。 我准备把Fiddler写成一个系列。Fiddler的功能还有很多, 很多功能都没有被挖掘出来。这次我们介绍Fiddler中的一个非常有用的功能Composer,是用来创建和发送HTTP Request的。Composer的使用方法很简单,看下就知道用了。 阅读目录
2013-06-17 11:34:27 1144
转载 Fiddler (二) Script 用法
通过前一篇博客 【小坦克: Fiddler教程】,我们了解了Fiddler的基本用法, 现在我们来看看Fiddler的高级用法. Fiddler Script。 Fiddler中的script 可以让我们自动修改Http request和Response 的内容。 而不用手动地去下"断点"来修改http Request或Response中的值。 阅读目录Fiddler的作者
2013-06-17 11:33:43 928
转载 Fiddler 教程
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。阅读目录Fiddler的基本介绍Fiddler的工作原理同类的其它工具Fiddler如何捕获Firefox的会话Firefox 中使用Fiddler插件Fiddler如何捕获HTT
2013-06-17 11:32:46 700
C#语音通信开源框架
2013-11-14
Unity3d 快速管理多个摄像机
2012-12-21
Android HAL
2023-05-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人