- 博客(53)
- 资源 (2)
- 收藏
- 关注
原创 Cuda By Example - 12 (Texture Memory)
Texture Memory,使用Texture Object API实现。
2024-11-01 22:37:17
966
原创 Cuda By Example - 8 (性能测量)
cuda by example 第6章引入cudaEvent_t来测量运行时间,相关函数有: cudaEventCreate cudaEventRecord cudaEventSynchronize cudaEventElapsedTime cudaEventDestroy
2024-10-19 08:20:22
413
原创 Cuda By Example - 2
为什么代码里用的是blockIdx.x呢,这是因为CUDA C定义的block二维的,这样处理起矩阵或者图像就比较方便了,因为他们的元素往往表示成 a[i][j]. 我们的数组是a,b是一维的,所以只需取x即可。cudaMalloc((void**)&dev_a, N*sizeof(int))在GPU分配了一个包含N个元素的数组,分配的内存的指着赋予了dev_a. 然后给dev_b和dev_c做了类似的操作。在add函数里,遍历a,b数组,逐个将对应元素相加,结果存入c数组对应的位置。
2024-10-10 11:12:33
691
原创 阿姆达尔定律
阿姆达尔定律的公式可以看到,如果可以并行运行的部分为0,那么加速比s=1, 也就是说无法加速。如果全部都可以并行,那么加速比s=n。这个也很好理解,如果一份工作可以完美的分成n份,并行来做,那么所费的时间为原来的1/n,加速比自然为n。其中P为可以并行运行的部分, n为计算资源的数量。
2024-10-09 13:49:09
240
原创 2024/9/19 Notes
当LINUX_KERNEL_CODE >= KERNEL_VERSION(5,4,0), linux引入了namespace来控制内核中symbol引用范围。比如跟USB Storage相关的一些函数,我们可以直接使用EXPORT_SYMBOL,使所有模块可以可用,也可以EXPORT_SYMBOL_NS(symbol_name,), 这样只有使用了MODULE_IMPORT_NS(),导入USB_STORAGE namespace后,才能引用symbol_name.
2024-09-23 15:36:18
491
翻译 Android多媒体开发 Pro Android Media 第二章 创建自定义相机应用 3
扩展自定义相机应用程序在我看来,Android 上的内置相机应用程序缺少几个基本特征。其中之一是,延迟一小段时间,10或者30秒,之后进行拍摄。此种功能对于那些可以安装在三脚架上的相机来说,通常很实用。它提供了这样的功能,摄影师设置好镜头,设定好计时器,然后自己跑到镜头里。虽然对于移动电话而言,可能不是很常用。但在某些特殊场景,却非常有用的。例如,当我想要和同伴一起拍照时,就非常喜欢这
2014-03-03 13:43:01
2518
翻译 Android多媒体开发 Pro Android Media 第二章 创建自定义相机应用 2
更改相机预览大小Camera.Parameters中另一个特别有用设置是设置预览大小。正如使用其他设置,我们首先要查询的参数对象,取得其支持列表。取得预览尺寸列表之后,我们遍历它,以确保在设置之前,我们想要设置的大小是相机支持的。在本示例中,我们不设定精确的预定尺寸,而选择一个设备支持,最接近且不大于预定值的尺寸。图 2-4 显示了此示例的输出。...public sta
2014-02-28 10:48:51
5396
翻译 Android多媒体开发 Pro Android Media 第二章 创建自定义相机应用 1
在上一章中,我们看了如何利用Android内置的相机应用为其他应用提供一个现成的照片拍摄组件。它提供标准界面给最终用户,对我们程序员而言又简单直接,不过它也因此缺乏灵活度。例如,如果我们想要我们的相机应用支持延时拍摄,使用内置应用就不好实现。幸运的是,使用内置应用并不是访问摄像头的唯一途径。底层硬件的开放程度以及系统提供的访问方法,对我们和相机应用来说是一样的,我们可以在任意类型的应用
2014-02-26 13:10:20
3529
翻译 Android多媒体开发 Pro Android Media 第一章 Android图像编程入门 4
使用MediaStore检索图像Android的共享内容提供者功能很强大,利用他们我们可以非常容易的创建类型画廊(gallery)的应用。由于内容提供者,本例中是MediaStore,可以在应用间共享,当我们创建使自己的应用显示图像时,不必真去创建一个相机应用并保存图像。既然大多数应用使用缺省的MediaStore,我们可以利用这个来创建我们自己的画廊应用。从MediaStore选择是
2014-02-20 15:00:00
1904
翻译 Android多媒体开发 Pro Android Media 第一章 Android图像编程入门 3
Android提供了一个标准的方式在应用程序之间分享数据。负责此功能的那些类被称为内容提供者(content provider)。内容提供者提供了一个存储和检索各类数据的标准接口。
2014-02-19 22:12:49
2810
翻译 Android多媒体开发 Pro Android Media 第一章 Android图像编程入门 2
本节介绍了如果让camera返回更大的图像, 并在应用中尽可能大的显示出来.
2014-02-18 22:24:59
1580
翻译 Android多媒体开发 Pro Android Media 第一章 Android图像编程入门 1
本章我们将来学习图像采集和存储的基本知识。我们首先探索android提供的内置功能,然后在后续章节中学习如何定制化软件。内置的图像采集和存储功能是学习Android多媒体功能非常好的入门指南,同时也为后续音频和视频的学习铺路。我们从如何使用内置相机应用(Camera)开始,之后转到MediaStore使用技巧。 MediaStore是Android内置的多媒体和元数据(metadata)存储机
2014-02-18 17:22:36
3177
转载 Android4: HDMI system in ICS
Android4: HDMI system in ICS Android4.0 framework默认支持hdmi, 工作流程:HDMI状态改变时driver通过UEvent "DEVPATH=/devices/virtual/switch/hdmi" 上报给系统-->系统在PhoneWindowManager中通过UEventObserver中获取状态
2012-10-26 15:40:52
1921
转载 android superuser.apk 管理root权限原理分析
原文出处:http://blog.163.com/szs121@126/blog/static/109056781201223111390835/使用android 手机很多情况下需要root权限,关于root权限获取的原理可以参考以下文章:1、云中漫步博客: Android系统root破解原理分析 http://my.unix-center.net/~Simon
2012-10-15 10:31:31
21404
原创 Linux I2C 驱动的几个概念
本文介绍Linux I2C驱动相关的几个重要的数据结构,以及他们适用的 场合。struct i2c_adapter无法避免,我们必然碰到struct i2c_adapter这个数据结构。好在我们只是要编写I2C设备驱动,我们只需简单的认为,i2c_adapter是标识一个I2C总线的数据结构的,直白一点就是CPU这边的I2C控制器,I2C主设备。我们跟I2C设备的所有通信,都必须通过这个控
2012-08-31 15:08:06
2259
原创 字符设备基础
尽管linux 2.6 后,驱动的框架变化很多,但是字符设备创建的基础并没有变,只是需要我们自己实现的机会变少了。因而,在学习驱动时最先学到的东西,反而淡忘了。这里做下温习。struct cdev 字符设备的基础结构 - 在系统中标识次字符设备的。实际使用中,往往需要在此之上做些扩展。 比如 struct xxx_dev { struct cdev cdev;int v
2012-04-10 16:09:58
862
原创 linux内核调试
linux 内核调试是很棘手的问题, 一般采用的方法有以下几种。总结不到的地方,欢迎讨论。1. 最常用,最简单的方法, printk printk 是内核驱动调试,最常用,最简单,也是用的最多的方法。2. proc/sysfs proc以及sysfs下的设备节点,也是开发者了解驱动内部状态的重要手段。3. oops 这个是指内核出现段错误(Segment
2012-04-09 13:46:13
851
原创 awk 笔记之六 patterns, actions, variables 详细介绍
在开始学习awk的时候, 我们就学到了, 构成awk脚本语句的基本框架. 即 Pattern { Action }, 我们把一对Pattern { Action } 成为一个规则(Rule). 今天,我们进一步来学习如何建立pattern和action,以及内建变量(Variable)的使用.1. Patternawk是否执行一条规则,取决于输入记录是否跟Pattern匹配. 常见的
2012-04-08 21:42:49
2432
原创 awk 笔记之五 输出
1. print print $1,$2 中间使用逗号隔开, 实际输出是在 $1 和 $2 之间留一个空格. print "" 输出一个空行 print $1 $2 会将$1和$2连接到一起. 输出的分隔符OFS和ORS分别指定字段分隔符和记录分隔符. 如 awk ' BEGIN { OFS=";" ; ORS="\
2012-03-27 23:31:14
1800
原创 awk 笔记之四 getline
getline Sets $0, NF, FNR, and NRgetline var Sets var, FNR, and NRgetline Sets $0 and NFgetline var Sets varcommand | getline Sets $0 and NFcommand | getline var Sets varcommand |& getline
2012-03-26 00:21:58
858
原创 awk 笔记之三 - 输入的处理 FS RS
1. awk 脚本从标准输入端(键盘输入或管道) 或者命令行指定的文件中读取. 可以指定多个文件.当前文件名在内建变量FILENAME中. 每次读取和处理一个记录(record). 每个记录分成若干个字段. 缺省情况下, 每个记录就是一行文件. RS变量指定划分记录的字符. 缺省RS为换行符-'\n'. 可以指定其他字符用于划分记录. gawk 甚至允许指定一个字符串, 或者正则表达来作为
2012-03-25 19:04:39
1611
原创 android 编译出错之一
host Java: clearsilver (out/host/common/obj/JAVA_LIBRARIES/clearsilver_intermediates/classes)target Java: core (out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes) make[2]: *** 没有
2012-03-24 11:51:59
4647
原创 awk 笔记之二 正则表达式
1. 正则表达式的使用方法 a) / regexp / 在整行中匹配 b) exp ~ /regexp/ 在exp中匹配 如: awk ' $1 ~ /J/' aaa.txt c) exp !~ /regexp/ 在exp没有匹配到 2. Escape Sequence \\ \a \
2012-03-19 22:24:04
756
原创 awk 笔记之一
awk最基本的功能是搜索文件中的匹配某一字符串的文本行,并可对匹配行执行指定的动作(Action).1. awk 脚本或者说程序的基本格式是 pattern { action } pattern 指定了匹配规制, action指定了对匹配行将进行的操作.2. 脚本的使用方式: a) 在shell命令行中, 将脚本作为awk的参数执行. 脚本用单
2012-03-18 16:28:04
697
原创 使用Android编译环境编译小工具
在Android 的external目录, 已经有了很多个目录存放各类小工具,比如ping, gzip等.我们可以将自己要编译的新工具,也在此目录下建一个目录,将源文件和Android.mk文件放在其下.并使用 mm external/xxx
2012-03-13 22:13:00
863
原创 Status Bar Notification
Android的Notification分为三种,适用于不同的情况. 1. Toast Notification, 此为运行的Activity或者Service,弹出提示信息, 短时间显示之后,消失.2. Status Bar Notification, 这个是将提示显示显示在Status Bar上, 用户通过下拉Status Bar获取Notification列表及详细信息, 此多用于
2012-02-16 09:59:28
3295
原创 Parcel 和 Parcelable
Parcel 在英文中有两个意思,其一是名词,为包裹,小包的意思; 其二为动词,意为打包,扎包。邮寄快递中的包裹也用的是这个词。Android采用这个词来表示封装消息数据。这个是通过IBinder通信的消息的载体。需要明确的是Parcel用来存放数据的是内存(RAM),而不是永久性介质(Nand等)。Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体(用
2012-02-10 10:56:49
11976
原创 android 使用Thread的一种方法-HandlerThread
HandlerThread继承自Thread, 通过消息驱动线程处理某些事情。(其他方法包括-继承Thread, 实例化一个Thread并传入一个runnable做参数, etc.)HandlerThread 可以提供一个looper 用于构造一个Handler类,这样Thread的实现就简化为了Handler类的消息处理。1. 实例化HandlerThread对象 Hand
2012-02-09 10:32:08
4529
原创 短信相关
发送:String smsBody;String num=13500030001;SmsManager sms = SmsManager.getDefault();List texts = sms.divideMessage(smsBody);for ( String text : texts ) { sms.sendTextMessage(N
2012-01-18 14:48:33
576
android sdk platform linux (part2)
2011-09-22
android sdk platform linux(part1)
2011-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人