9 xusiwei1236

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 4w+

Android WiFi 架构总览(模块及接口)

本文介绍Android源码项目(AOSP)中WiFi功能的软件架构及各个模块(可执行文件、库)间的接口,对Android系统感兴趣的同学可以一看。

2015-09-23 10:45:45

Qunie——自我生成程序

Qunie是一段没有输入,但输出和它本身源码相同的程序。本文无任何高深技术,纯属娱乐! wikipedia的解释:A quine is a non-empty computer program which takes no input and produces a copy of its own source code as its only output.

2015-08-10 16:04:07

btHashMap vs std::unodered_map ——两种hashmap的性能对比测试

本文用实验对比了btHashMap和std::unordered_map在几种不同场景下的性能表现,证实了前文对于二者性能差异上的断言,并从rehash成本的角度解释了当size达到一定数量时std::unordered_map性能表现下降的原因。

2015-07-25 11:41:33

Java的Object.hashCode()的返回值到底是不是对象内存地址?

java的Object.hashCode()返回的到底是不是对象的内存地址?相信大家都曾对此问题有所怀疑,本文通过实验探究 和 ART(Android Runtime)、OpenJDK的源码分析为大家(和我自己)回答了这个问题。对Java、算法感兴趣或对此问题也有疑问的同学可以一看。

2015-05-03 13:25:40

Android初始化语言(init.rc语法)

本文为 ANDROID_SOURCE/system/core/init/readme.txt 的译文,主要讲解Android init.rc的语法。这份文档基本说明了init进程要完成那些工作,当然,除此之外,init进程还要完成property service等内容。对Android启动过程感兴趣或对init源码有兴趣的同学,本文值得一读。

2014-12-28 10:50:48

WiFi(网络)调试Android手机

adb是Android调试神器,它本身提供了网络调试的功能;所以,在不能直接用USB连上手机的情况下,可以用WiFi连接adbd进行调试,本文记录了WiFi连接adb并进行调试的具体步骤。WiFi连接的adb用起来和USB连接的没有任何区别,可以正常使用adb shell, adb logcat, adb am,adb reboot等命令,使用Eclipse单步调试也没有任何问题。没有ROOT手机也可以使用WiFi调试,唯一的要求是启用手机的网络调试功能,是不是邪恶感顿生?

2014-11-25 14:25:57

Java并发原语——线程、互斥与同步

本文首先介绍了Java的线程基本操作(创建、等待等),线程的互斥、同步操作;然后解释了为什么需要互斥、同步,什么是信号(通知)丢失,什么是虚假唤醒;并实验展示了原子性(Atomic)问题、通知丢失(notify missing)问题;同时给出了原子性、信号丢失、虚假唤醒问题的解决方法。

2014-11-16 16:36:17

bullet HashMap 内存紧密的哈希表

bullet 作为开源实时物理引擎,在速度和性能上有着优秀的表现。本文首先分析了bullet的内存对齐、动态数组,然后分析了std::ordered_map的内存布局,最后分析了btHashMap内存布局的独特之处,并解释了为什么这种设计有着优秀的性能表现。PS:对算法、数据结构、内存管理、高性能感兴趣的同学,此文绝对值得一看。

2014-11-09 14:07:20

C++类型转换

一篇来自cplusplus.com的文章,这是我所看过的关于C++类型转换的最全面、最细致、最深入的一篇文章,本文为其中文译文。本文介绍了C++的各种类型转换,具体包括:基本类型的隐式类型转换,C风格的类型转换,类的隐式转换(implicit conversion),explicit关键字,static_cast, reintperet_cast, const_cast, dynamic_cast。 以及和RTTI相关的typeid关键字。

2014-11-01 15:51:50

avr-libc malloc/free的实现

本文从源码角度分析了malloc/free在avr-libc下的具体实现。avr-libc的malloc/free使用了单链表链接的freelist作为管理chunk的“账簿”,同时采用了“最佳适配”策略——即若freelist有多个chunk可满足当前malloc(size)请求,将以“最佳的”(所有大于size的chunk中最小的)chunk响应。

2014-10-25 09:48:30

C++哪些运算符重载可以重载?

运算符重载是C++重要的特性之一,本文首先引用了C++标准文档对于“运算符重载”的规定,然后通过代码实例回答了:哪些运算符可以重载?如何重载?实现运算符重载时应注意哪些?

2014-09-29 23:01:52

从github下载最新Android源码

今年5月底开始,谷歌彻底被墙,所有谷歌的网站都不能访问了,这次包括了android.org,googlesource.com,code.google.com。Android官方的资源不能访问,想下载Android代码当然是困难重重了。本文就为大家解决这一问题——介绍如何使从github.com/andorid下载Andorid最新源码。俗话说“授之以鱼不如授之以渔”,本文不只是给出一个已经打包好的源码的链接,而是重现一下我是如何下载的,希望对大家遇到的类似的问题能有所帮助。

2014-09-23 09:08:39

Android 传感器开发

现在的智能手机都配备了各种各样的传感器,本文将用代码实例展示如何使用Android SDK提供的相关类及方法开发传感器应用。

2014-09-18 21:04:59

C++运算符重载的妙用

运算符重载(Operator overloading)是C++重要特性之一,本文通过列举标准库中的运算符重载实例,展示运算符重载在C++里的妙用。具体包括重载operator<<,operator>>支持cin,cout输入输出;重载operator[],实现下标运算;重载operator+=实现元素追加;重载operator()实现函数调用。

2014-09-18 00:42:30

【经典面试题】实现平方根函数sqrt

本文描述了二分法、牛顿法、割线法的算法步骤,并实现了基于这几种方法的SQRT;同时,从理论角度解释了这些算法背后数学原理,并将这些方法推广到了求一般方程近似解的问题上。最后,对几种方法实现的sqrt的收敛速度进行了理论分析和实验对比。实验结果表明,牛顿法的收敛速度快于割线法,割线法快于二分法;与理论分析结果一致。

2014-08-30 17:53:19

Android Handler 详解

本文回答了“为什么使用Handler能跨线程更新UI?”,同时从源码角度剖析了暗藏在Handler背后的玄机:Looper(封装了消息循环)和MessageQueue(消息队列),它们是所有App(Activity)得以运作的核心。Handler本质上具有两个角色——消息队列的窗口(Handler.sendMessage)、处理消息的回调(Handler.handleMessage)。最后指出,后台线程通过Handler更新UI本质上是“生产者消费者问题”。

2014-08-28 17:50:58

Python 30分钟入门——数据类型 and 控制结构

Python是一门脚本语言,我也久闻大名,但正真系统的接触学习是在去年(2013)年底到今年(2014)年初的时候。不得不说的是Python的官方文档相当齐全,如果你是在Windows上学习Python,安装包自带的“Python Manuals”就是一份很好的学习资料(基本上不用去找其他资料了);尤其是其中的Tutorial,非常适合初学者。本文一方面总结了python语言的核心——数据类型和控制结构;另一方面,通过与其他语言的对比表达了我对Python的一些拙见。

2014-07-27 01:18:10

类球多面体生成——经纬划分法

规则多面体生成算法,算法本身并不复杂。开始想百度一份的,结果没百度到。贴出来,希望以后有用得到的同学可在直接拿去用。算法过程根据经纬线数目求出多面体表面所有点的坐标;连接南北极附近的三角形面;连接中间的四边形(或两个三角形);算法实现下面是该算法的C++实现.Convex* SphereGenerator::generate(int longitudes, int l

2014-06-14 18:10:01

GLUT的简洁OO封装

Member function 如何作为Callback?这里其实是两个问题。第一个问题,member function的函数签名上有this指针,不能直接传给glut*Func作为callback。member function不行,很自然的想到static function。第二个问题,static function如何能够调用member function,且与之关联的对象(this指针)能够在运行时期(或者用户程序)决定?其一,static function调用member functi

2014-06-05 14:07:15

Resource Acquisition Is Initialization(RAII Idiom)

原文链接:http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Resource_Acquisition_Is_Initialization

2014-05-12 20:25:06

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!