自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (8)
  • 收藏
  • 关注

原创 Android Framework源码解读 - Audio - SoundTrigger(3) - Callback

上一篇Android Framework源码解读 - Audio - SoundTrigger(2)已经完成了SoundTrigger的初始化流程,并在HAL层启动了callback_thread_loop线程来监听内核事件(也就是驱动检测到唤醒词后会上报uevent)。接下来就讲讲这个唤醒事件是如何通过callback方式一层层上报,最终被APK层收到的。既然是callback方式,肯定是会涉及函数或是对象指针,而且是要从源头 - APK层开始一层层把指针设置到HAL层,最终被HAL层的callbac

2021-06-27 17:46:56 1721 1

原创 Android Framework源码解读 - Audio - SoundTrigger(2)

在上一篇中Android Framework源码解读 - Audio - SoundTrigger(1) - AIDL,提到startRecognition如何到达HAL层(主要本例中使用的唤醒词检测驱动来自厂商,HAL层的代码实现也是厂商提供),请看下图:相关代码位于./frameworks/av/soundtrigger/ISoundTrigger.cpp 、./frameworks/av/services/soundtrigger/SoundTriggerHwService.cpp共4步:

2021-06-14 22:02:56 1663 7

原创 Android Framework源码解读 - Audio - SoundTrigger(1) - AIDL

SoundTrigger语音识别架构是Android5.0才引入,在Android7.0逐步完善。官方介绍:https://source.android.google.cn/devices/audio/sound-triggerThe Sound Trigger feature provides apps with the ability to listen for certain acoustic events, like hotwords, in a low-power and privacy-

2021-05-30 18:53:14 4311 2

原创 Android Framework源码解读 - Audio - AudioRecord

AudioRecord is a audio client for receiving data from an audio input device such as a microphone.应用层调用AudioRecord的主要APIs,主要有getMinBufferSize()、new AudioRecord()、startRecording()、getRecordingState()、read()、getState()、stop()、 release(),大致调用步骤如下:静态方法get

2021-05-23 18:27:35 790

原创 Android Framework源码解读 - Audio - audioserver启动流程(3)

在上一篇Android Framework源码解读 - Audio - audioserver启动流程(2) - HIDL中已经基本上理清了audioserver启动以及它和另外两个关键进程android.hardware.audio@2.0-service, hwservicemanager的交互关系。其中audioserver启动时创建了三个关键service,前两篇已经涉及到了AudioFlinger service和AudioPolicyService, 而SoundTriggerHwSer..

2021-05-23 10:36:49 1202 3

原创 Android Framework源码解读 - Audio - audioserver启动流程(2) - HIDL

图片来自http://gityuan.com/2019/03/20/android_future/Android 8.0系统(Android Oreo简称 Android O),Google开展了计划(Project Treble),为了解决Android 系统的碎片化问题和提高系统更新的效率,减少framework 和HAL 的耦合性,进而引出了HIDL 的概念。Treble引入后,新增了一个vendor.img,即原先的system分区,被拆分为了system分区和vendor分区,SOC及..

2021-05-22 17:53:43 2961 4

原创 Android Framework源码解读 - Audio - audioserver启动流程(1)

main_audioserver.cpp源码 ./frameworks/av/media/audioserver/main_audioserver.cpp 对应进程 audioserver, 对应的启动rc文件在 /etc/init/audioserver.rc# cat audioserver.rc service audioserver /system/bin/audioserver class main user audioserver group audio c.

2021-05-22 16:44:21 1276 1

原创 Android Framework源码解读 - Audio - 序

https://source.android.google.cn/devices/audioMedia Server: The media server contains audio services, which are the actual code that interacts with your HAL implementations. The media server is located in /frameworks/av/services/audioflinger. Client...

2021-05-22 16:15:39 554 1

原创 Perl获取微信小程序用户信息(包含openid,unionid)

涉及微信小程序相关AIP如下:1、wx.login2、wx.getUserInfo3、用户数据的签名验证和加解密接口wx.getUserInfo当中的 openId 和unionId属于敏感数据,所以接口的明文内容将不包含这些敏感数据。开发者如需要获取敏感数据,就需要对接口返回的加密数据( encryptedData )进行对称解密。 解密算法如下:对称解密使用的算...

2017-10-23 10:21:40 352

MongoDB开发LBS应用

随着近几年各类移动终端的迅速普及,基于地理位置的服务(LBS)和相关应用也越来越多,而支撑这些应用的最基础技术之一,就是基于地理位置信息的处理。关于LBS的详细介绍及通用的几个解决方案,可以参考:深入浅出Symfony2 - 结合MongoDB开发LBS应用 本文主要举例说明使用Perl语言 + MongoDB实现查找附近的人的实现方案。涉及的官方API说明文档列表:1、2...

2017-10-18 17:04:43 206

Perl之Net::APNS实现苹果消息推送

Net::APNS is Apple Push Notification Service. Push message to iPhone and get unavalble-devicetoken. 苹果开发者官网说明:The APNs provider API lets you send remote notification requests to APNs.  Net::A...

2017-10-18 16:26:42 165

原创 支付宝移动支付之服务端实现

支付宝(蚂蚁金服)移动支付的交互流程请参考:https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103658&docType=1 和微信支付的流程大体一致,即:1、客户端提交订单内容信息2、服务端根据订单内容信息(可以根据业务需要添加额外信息,而且要指定notify_url地址),按照签名规则生...

2017-10-18 15:30:38 366

原创 苹果应用内支付之服务端的实现

本文主要讲移动APP实现苹果支付的服务端实现步骤。 苹果应用内支付的流程可参考:1、 官网说明:https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html#//apple_ref/doc/uid/TP40...

2017-10-18 11:21:22 2208

原创 PC网站通过微信扫码支付之服务端实现

支付申请说明参考:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=3_1 微信扫码支付可分为两种模式,本示例选择模式二,具体流程及API文档参考:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5 下面仅说明服务端的实现,主要包含两部分...

2017-10-17 17:28:28 909

原创 Perl获取微信小程序二维码

微信小程序API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/qrcode.html # 参数 $path即页面路径,比如:"pages/index?query=1"sub get_wxa_code {    my ($fid, $path) = @_;     my $ret = get_access_token()...

2017-10-17 11:50:34 270

原创 Perl之Linux::Inotify2

关于 inotify 机制的详细介绍可以参考文章:inotify -- Linux 2.6 内核中的文件系统变化通知机制文章写得很详细,而且还给出了c语言实现的例子。 下面我就来说说Perl里面,如何利用Linux::Inotify2 实现任务异步操作的例子。比如 A进程(线程)将要完成的任务按一定规则 写到inotify监控的目录下,通过inotify机制自动解析并完成任...

2017-10-17 11:09:31 285

原创 Perl服务端通过CGI获取客户端ip地址

use CGI; my $remoteip = $ENV{"REMOTE_ADDR"};   --> 客户端IP地址my $remoteport = $ENV{"REMOTE_PORT"};  --> 端口my $http_via = $ENV{"HTTP_VIA"};  --> VIA头部 可以根据下面方式,查看整个http头部内容:my $ua...

2017-10-17 10:20:40 781

原创 Perl之Net::SMTP

用户Perl写个脚本,使用Net::SMTP模块发邮件: #!/usr/bin/perl -wuse warnings;use utf8;binmode(STDIN, ':encoding(utf8)');binmode(STDOUT, ':encoding(utf8)');binmode(STDERR, ':encoding(utf8)'); use JS...

2017-10-16 16:54:25 1095

原创 Perl之Spreadsheet::ParseExcel

转载:http://www.alonely.com.cn/CGI-Perl/20160908/29061.html use strict;use Spreadsheet::ParseExcel; my $parser   = Spreadsheet::ParseExcel->new();my $workbook = $parser->Parse('Book1...

2017-04-06 11:37:57 1941

原创 Perl之Spreadsheet::WriteExcel

一般导出excel功能是出现在后台管理系统中,运营人员为了便于统计,经常需要将大量数据导出。本文主要描述如何将mongodb查询出来的数据写入excel表格。 一、安装相关模块:1、MongoDB  -> 操作数据库接口文档https://metacpan.org/pod/distribution/MongoDB/lib/MongoDB/Tutorial.pod ...

2017-04-06 11:13:27 3101

原创 微信内网页开发 - 授权登录

接口文档:http://mp.weixin.qq.com/wiki/4/9ac2e7b1f1d22e9e57260f6553822520.html 一、开发者需要先到公众平台官网中的开发者中心页配置授权回调域名,也就是授权链接里面的redirect_url指向的服务器域名。比如你的REDIRECT_URI是 http://www.iteye.com/cgi-bin/wechat.p...

2017-03-23 09:48:01 305

原创 微信内网页开发 - 公众号发红包

接口文档:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3 一、开通现金红包权限二、下载API证书三、充值以上步骤请参考:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?cha...

2017-03-22 16:29:26 381

原创 Perl之POSIX

利用POSIX模块处理 向下/向上取整 use POSIX;POSIX::ceil(3.14) => 4   #向上取整POSIX::floor(3.14) => 3   # 向下取整, 等同于 int(3.14) 利用Math::Round 做四舍五入 use Math::Round;my $num = 45.4;my $round = M...

2017-03-22 14:38:21 3071

原创 Perl之stat()函数

转载:http://blog.chinaunix.net/uid-10449864-id-2956793.html perl下的stat函数和shell下的stat命令的功能基本一致,也是取得文件的各类具体信息:stat()函数返回一个数组,下面是数组各个元素的含义:0     dev      设备号 驱动器号(C:通常是2,D:通常是3,等等)1     ino      索引节号...

2017-03-22 14:23:46 3851

原创 微信内网页开发 - 公众号支付

接口文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_4 开发步骤:一、设置支付授权目录 二、流程1、前端H5页面请求服务端生成唯一订单号(包括用户信息,支付金额,商品信息等),服务端在数据库创建一条新记录2、前端H5页面请求服务端Perl CGI脚本进行支付: 例如https:/xxxx...

2017-03-22 13:14:53 177

原创 微信内网页开发 - 微信分享(微信JS-SDK)

接口文档:微信JS-SDK说明文档 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包 一、先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 二、H5页面引入JS文件:http://res.wx.qq.com/open/js/jweixin-1.0.0.jswx.config({    debug: tru...

2017-03-22 11:07:57 180

原创 微信支付 - 申请方法

接口文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=3_1 1、公众号支付申请方法:登录公众平台,选择"微信支付"=》点击“开通”=》按照页面提示填写资料;收到审核通过的邮件后就可以开始开发工作。需要登录商户平台(pay.weixin.qq.com),在页面填写打款收到的金额,并在线签署协议,完成支...

2017-03-21 10:35:25 101

原创 Perl之List::Util

#!/usr/bin/perluse List::Util qw/max min sum maxstr minstr shuffle/; 利用 List::Util::shuffle创建一个随机排序的数组。 sub create_rand_array {        my ($min, $max)= @_;my @a = ($min..$max);@a = L...

2016-08-29 15:19:32 557

原创 Perl之Encode::Detect

以处理csv(内容含中文)为例,使用Encode 模块。因为csv如果包含中文,需要转码否则出现分割列的时候会出现错位。 use Encode qw /from_to/;use Encode::Detect::CJK qw(detect); sub test_csv {my $file_name = $_[0];my $table;open(CSV, $file...

2016-08-29 14:44:31 1490

原创 Perl之Time::Local

use Time::Local; my $now = time(); #取当前的unix时间戳 my ($sec,$min,$hour,$day,$month,$year,$wday,$yday,$isdst) = localtime();$year = $year + 1900; #注意$year表示它表示从1900年开始的年份,要处理$month = $month ...

2016-07-22 14:16:58 691

原创 Perl之HTTP::Request

use URI::Escape;#URL编码use JSON; #发送GET请求use LWP::Simple; my $tmp = "您本次操作的验证码为:$code";my $smsmsg = uri_escape_utf8($tmp); #URL编码my $args="http://xxx?p=".$phone."&c=$smsmsg";my ...

2016-07-22 13:49:29 1413

最新版本(OpenSSL1.0.1e)libssl.so, libcrypto.so for Android

仿造 https://github.com/fries/android-external-openssl 工程,用Cygwin + NDK编译最新OpenSSL(openssl-1.0.1e.tar.gz )。1. 找个有jni的工程,将1.0.1e中解压出来的crypto, include, ssl拷贝到jni目录下。2. 仿造android-external-openssl...

2013-03-04 09:24:02 741

Android JNI之OpenSSL

需求:    通过C代码实现Https的Post操作。方案:    1.选择支持HTTPS的开源库OpenSSL    2.将OpenSSL编译成.a或.so,是指在工程中编译源码成链接库    3.C代码调用OpenSSL的接口步骤:1. 工具:OpenSSL源码,NDK,Cygwin2. 关键是Android.mk的设计# Copyright (C) 2...

2013-02-07 16:53:09 427

Android 抓包分析

工具准备:1. adb2. tcpdump3. wirshark 步骤:(下面仅适用于模拟器)1. adb root2. adb push c:\tcpdump /data/local/tcpdump 3. adb shell4 # chmod 6755 /data/local/tcpdump /*修改读写权限*/5.开始抓包# cd /data/loc...

2013-02-07 16:24:15 115

原创 Android AVD之Socket Connect Time Out

01-28 02:57:11.545: D/TyLogin(297): calling connect01-28 02:57:36.253: I/ActivityManager(59): Process android.process.acore (pid 169) has died.01-28 03:00:03.994: E/CheckinTask(190): Checkin failed:...

2013-01-28 11:17:17 152

Android之JNI续

Android NDK, Revision 8d (December 2012)前一篇,简单介绍了使用NDK进行JNI的编程实践,当时使用的NDK版本是1.6_r1(2009),是很早的版本了,相应的toolset也就只包含了少数简单的命令。JNI编程,必然涉及到C编程,那么当Application在C函数中遇到了错误,甚至crash(如Segmentation fault,’Proc...

2013-01-28 11:09:22 72

Android之JNI初级篇

Android之JNI初级篇 JNI – Java Native Interface: Java平台中一个用于和本地C代码进行互操作的API,称为Java本地接口。也就是用来实现java程序中调用C函数。实质是将本地C代码编译到一个动态装载库中(如libHello.so/Hello.dll)。 Android JNI: 在Android工程中调用C的过程,称为Native De...

2013-01-28 11:04:04 96

原创 我的Android之路

2013.01.06,我回到了老家福建,在福州找了一家软件公司,开启了我的Android开发之路...

2013-01-28 10:13:39 90

原创 转眼青春的散场

转眼青春的散场原文: 选自<<九九文章网>>译者: 爱尔兰都柏林大学 赖小琪青春的字眼慢慢的觉得陌生,年轮总是很轻易的烙下苍老的印记。以为总是长久的东西,其实,就在转神与刹那间便不在身边了。曾经深爱、思念着的人便轻易的变成了曾经熟悉的陌生人。曾经纯真无邪,曾经美丽梦想,随着四季轮回慢慢的散尽……这就是青春,在岁月里的转身,从一个熟悉到另外一个陌生,再从陌生转变到...

2011-07-15 11:55:35 124

原创 使用Rails自带的console环境

rails带的console环境可以帮助开发者快速测试一些代码片段,对日常开发非常有用。但是,当我们在执行一个ActiveRecord操作时,会同时修改数据库的数据,如果我们只是想执行一些测试代码,而不想真实的修改数据库时,该怎么做呢?很简单:进入rails应用目录执行 ruby script\console --sandbox   E:\ruby\depo...

2009-08-05 14:45:54 212

Flexible Rails: Flex3 on Rails2

Flex在Rich Internet Applications应用的开发上具有非常强的生产效率,而Rails在创建一个基于数据库的CRUD(create,read,update,delete)应用上具有非常恐怖的效率。 而将Rails和Flex配合着使用的话,那将可以获得非常不错的开发效率和开发效果。 Peter Armstrong专门针对这个问题写了《Flexible Rails: Flex 3 on Rails 2》,对如何配合使用作了一个比较全面地介绍。

2009-07-10

struts2.0资料续

继续呀实战开发讲解视频入门Struts2入门开发之源码

2008-07-25

Strust2.0资料续

个人收集的struts2.0资料,比较全面,个人感觉不错

2008-07-25

Strust2.0资料

个人收集的struts2.0资料,比较全面,个人感觉不错

2008-07-25

SCJP官方教材中文版.rar

SCJP官方教材中文版,相当不错的资料

2008-06-24

图形界面聊天室源码.rar

java 写的图形界面聊天室源码,包括服务端,客户端的源码适合研究。

2008-06-24

C#高级编程-源码.zip

Professional C# (C#高级编程)里的源代码

2007-10-02

空空如也

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

TA关注的人

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