- 博客(25)
- 资源 (4)
- 收藏
- 关注
原创 android remount 工作原理简介
android remount 在调试android 系统的时候是个非常有用的调试手段, 有remount 的帮助, 可以轻松的修改系统分区的某些文件,或者在系统分区添加删除文件。但有时候remount 也会因为一些verity, checkpoint ,和remount 自身的一些原因不能正常工作。最近因为工作原因,对remount 的机制进行了一个大概的了解。
2023-06-12 22:15:19 2027
原创 WSL2 中使用adb fastboot 的方法
随着window10 2020 春季的发布,WSL2 也正式的亮相了, 对于Android 开发比较不看好的是居然不能用adb, 使用以下方式,在ubuntu 终端中使用window 版本的adb。sudo vim ~/.bashrcalias adb='adb.exe'alias fastboot='fastboot.exe'添加上面的几个命令即可使用windows 下的adb 和fastboot;生效source ~/.bashrc...
2020-06-02 09:47:37 2527 1
原创 mediaplayer 的学习
如果转载,请尊重原创,注明 yuedl1@163.com 谢谢!mdiaplayer 在android7.0 到android 7.1 ,一直在改变着,这也许就是google的精神吧,一直在迭代。要不我们也就没事情干了。公司最近事情比较少,就对这个mediaserver 学习了下。呵呵。废话少说,今天就来介绍下meidaplayer 在android 7.1 上的实现;mediaserv
2017-03-07 15:25:49 463 1
原创 android 中native 层的打印堆栈(c++)
android N 发布了一段时间了,在看代码的过程中,肯定要有调试的地方,看下调用什么的。想打印一下调用堆栈。可以包含头文件 一般都包含该头文件。定义 android::CallBack stack;stack.update()stack.log("log_tag");之前网上是用stack.dump() 。这个函数在android N上是需要fd的。
2016-09-13 16:11:24 6177 1
原创 android 源码的下载和编译
最近因为工作需要,需要下载一份android 源码在自己的ubuntu 笔记本上使用。于是就想下载一份android6.0.1的代码,编译一下,已做浏览代码和调试用。由于android 的网站在国内被墙,只能从国内镜像网站下载源码,我选择了清华的镜像网站:安装git:sudo apt-get install git下载repo 工具mkdir ~/binPATH=~/bi
2016-03-20 08:30:39 427
原创 const_cast的使用
最近在android项目上遇到了一个关于const_cast使用的。就好奇的搜索了下。代码简化后如下:struct A{const int cint;A():cint(0){};};class B:public A{B(){const_cast(A::cint) = 5;};};这样的话,A中的cint 就会改变为5;编程的技巧确实很牛,记录一下。
2015-04-27 14:31:16 368
原创 一道面试题的解答
写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr 所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr 后,函数将返回9,outputstr 所指的
2014-05-16 16:52:21 629
转载 source insight快捷键及使用技巧
source insight快捷键及使用技巧 转载:http://lucjn.blog.163.com/blog/static/92591152009111684354800/感谢原创作者;退出程序 : Alt+F4重画屏幕
2013-04-10 16:40:09 419
转载 Makefile 中的wildcard 函数和patsubst函数
Makefile中的函数使用:函数的格式基本为:$(函数名 第一个参数,第二个参数,...)在 GNU Make 里有一个叫 'wildcard' 的函 数,它有一个参数,功能是展开成一列所有符合由其参数描述的文 件名,文件间以空格间隔。你可以像下面所示使用这个命令: SRCS = $(wildcard *.c) 这行会产生一个所有以 '.c' 结尾的
2013-02-20 10:38:47 394
原创 c++ 和c的混合编译
在c++的应用开发中,难免会使用c的库文件。除了要把库给包含进来,还需要对c++中包含的c的头文件和c的函数做特殊的处理。使用关键字 extern “C” 将c的部分包含,否则,会出现连接错误,找不到你所要连接的c函数。原因就是c++的编译器编译的符号名字和c编译器编译出来的符号名字是不一样的。该关键字就是告诉c++编译器对符号进行修改连接。
2013-02-19 12:29:36 305
原创 一个比较大小的函数
去年面试的时候遇到了连续两次遇到这个问题,定义一个宏定义,返回最大的值。呵呵,当时一口气写下下面这个函数,感觉很不错了。自我感觉良好,感觉是书本上的,就是这个标准答案!#define MAX(A,B) ((A)> (B)?(A):(B) )在开发过程中遇到了一个比较问题,结果就给悲剧了。这个问题主要是如果碰上a++这样的表达式,那么这个比较就会出现副作用,它会在比较处展开。(a++)
2013-01-24 17:07:26 1898
转载 ASoC架构中的Platform
由http://blog.csdn.net/droidphone原创1. Platform驱动在ASoC中的作用前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号。
2013-01-15 16:27:39 404
转载 ASoC架构中的Codec
. Codec简介在移动设备中,Codec的作用可以归结为4种,分别是:对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号对音频通路进行控制,比如播放音乐,收听调频收音机,又或者接听电话时,音频信号在codec内的流通路线是不一样的对音频信号做出相应的处理,
2013-01-15 16:26:36 440
转载 ASoC架构中的Machine
由http://blog.csdn.net/droidphone原创前面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器);单独的
2013-01-15 16:25:40 428
转载 嵌入式中的ASoC
由http://blog.csdn.net/droidphone原创1. ASoC的由来ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性: Codec驱动与SoC CPU的底层耦
2013-01-15 16:23:45 403
原创 ubuntu tiny210 android 开发环境的配置与安装
最近按照友善之臂的安装了一个台式机的android2.3的编译环境,可是出差在外面就不能用了,由于对Fedora不是太熟悉,而且要求的配置较高,安装笔记本上面不是太合适。就选择了笔记本安装ubuntu10.04版本,再将环境安装到上面。笔记本ubuntu10.04的安装双系统,比较简单。不再赘述。安装好系统后,主要是安装一些android需要的库。如下:1.sudo apt-get insta
2012-10-15 17:25:10 1013
转载 tftp ubunt配置
1.1 搭建tftp服务器TFTP(Trivial File Transfer Protocol,简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合。TFTP协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。在嵌入式Linux开发中,TFTP协议在很多场合都被用
2012-10-15 17:16:46 375
原创 setjmp,longjmp,isgsetjmp,siglongjump
最近在学习Linux的编程,在学习到进程间通信时,学习的是基本的信号通信。学习完成之后,想写个简单的例子来复习下,没想到引起了一个问题,代码如下:#include #include #include #include jmp_buf position1;int catch(int sig){longjmp(position1,1);}int ma
2012-08-24 14:51:24 452
原创 tiny210—uboot 启动
由于需要,我们使用了u-boot启动tiny210的板子,在这里感谢liukun网友的uboot_tiny 210_3.1,在他的版本下启动,由于菜鸟,不太懂rootfs的位置在kernel中的配置。因此采用了间接的办法来启动我们的板子。先使用烧写友善之臂的sd烧写rootfs,烧写完成后。再烧写uboot,切换到nand flash下烧写kernel。重新上电即可启动我们自己的uboot,ker
2012-08-13 17:42:47 518
原创 结构体的应用技巧
几天前同事感觉我们的驱动代码中,有几个地方出错了。原因是,申请了两个结构体(a和b)的空间,调用mmset()初始化为0后,就直接引用,该结构体a里的值了,感觉没做初始化。经过我俩的探讨,得出结论,这是申请结构体空间,巧妙得到结构体b的一种方法。例子如下:#include#includestruct AA{char a1;char a2;char a3;char a4;
2011-12-30 18:45:16 490
转载 calloc malloc 区别
函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。malloc()函数有一个参数,即要分配的内存空间的大小:void *malloc(size_t size);calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。void *calloc(size_t numElements,s
2011-12-21 17:30:42 350
转载 嵌入式c的经典面试题(转)
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的AS
2011-12-13 16:31:07 459 1
转载 gvim的配置
最近在使用gvim,gvim是我学习中常使用的工具,因为不能显示行号而感觉使用不方便。因此在网上搜索了下他的配置。在gvim的edit选项-》setup setting下把下面的粘贴到里面,重新启动gvim即可;" ----------------- Author: Ruchee" ----------------- Email: my@ruchee.com" ---
2011-11-30 19:47:59 1123
转载 ARM的几道题(转载http://blog.csdn.net/makethyme/article/details/1633381)
What registers are used to store the program counter and linker register?A: r15 and r14 are used to store the program counter and linker register, respectively.What is r13 ofter used to store?
2011-11-30 19:42:53 387
八木天线旋转定位器 PC机控制
2011-07-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人