Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux动态链接库导出函数

Linux动态链接库导出函数

近日在项目中遇到一个问题,需要在so库中控制导出函数,即像windows平台一样,只允许制定的函数导出,而其他函数需要屏蔽掉。注意:参考文献中有一些函数是不能编译通过的。编译环境:gcc 4.4.3在windows中,我们可以指定__declspec(dllexport)定义来控制导出函数,在linux下,我们也有类似的控制参数。在GCC帮助文档 -fvisibility=default|internal|hidden|protected参数下有这样一段描...
Android 2.3 StrictMode 使用

Android 2.3 StrictMode 使用

ANR窗口产生的原因是多种多样的。程序的主线程因为IO读写或网络阻塞而导致被阻塞了,外部存储设备被独占了或系统负荷(load)过高(即不是自己编写的程序的问题,可能是系统或者其他第三方程序导致的问题),都有可能导致ANR窗口的出现。从Android 2.3开始提供了一个新的类StrictMode,可以帮助开发者改进他们的Android应用,StrictMode可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者使其改进程序,使主...
Android 编译mp4 v2 2.0.0生成动态库

Android 编译mp4 v2 2.0.0生成动态库

最近要录制h264+aac的mp4视频,使用mp4v2来实现,下面就是编译的方法1、下载源码,到官网 下载,现在最新的是mp4v2 2.0.02、解压下载的mp4v2-2.0.0.tar.bz2,然后进入mp4v2-2.0.0,将里面的文件以及文件夹拷贝的新创建的jni目录中,目录结构例如:/home/zhangjie/mp4v2-2.0.0/jni3、进入jni目录,将include目录中的mp4v2文件夹拷贝出来放到jni目录下面,例如:/home/z...
Android 编译libjpeg-turbo

Android 编译libjpeg-turbo

最近解码视频生成的是yuv数据,然后需要生成jpg图片,之前的方案是yuv-rgb-bmp-jpg这样的话是很慢的,计算了时间大概要300ms左右,导致多次点击照相,会造成视频画面的延迟,所以只能使用别的方案替代,在网上查询libjpeg,但是又看了一篇文章说libjpeg-turbo比libjpeg快了2-3倍时间,所以打算使用libjpg-turbo来实现yuv转换为jpg图像。下面是使用ndk来交叉编译libjpeg-turbo生成libjpeg-t...
使用libjpeg对图像进行压缩

使用libjpeg对图像进行压缩

libjpeg 是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。Libjpeg不仅可以把bmp格式转化成jpg格式,还支持其他格式的转化成jpg格式(例如ppm,gif,targa,rle等)。转化流程如下:(1) 分配和初始化一个JPEG压缩对象在libjpeg中,JPEG压缩对象被定义为“struct jpeg_compress_struct”(这个结构体内部有一些子结构体,这...
Android 编译libjpeg

Android 编译libjpeg

之前需要将yuv转换为jpg图像,查看网上说libjpeg-turbo比libjpeg快2-3倍,但是在Android手机上实践了一下,需要40-60个ms,这个虽然比以前的300ms好多了,但是还是不能满足我的要求,进一步查看了网上信息,libjpeg-turbo是为x86和x86-64进行优化的使用了SIMD指令,而手机上不支持,所以需要在试验一下libjpeg的需要。下面是我的编译步骤:1、先到官网上下载源码http://www.ijg.org/fi...
Linux设备驱动模型:xxxx_core之个人理解

Linux设备驱动模型:xxxx_core之个人理解

Linux设备驱动模型:xxxx_core之个人理解对于Linux,一些常用的设备驱动,例如codec、uart、i2c等,都有一个xxxx_core的程序实现,例如serial_core,这是一个什么样的结构呢?其实,这就是提供了一般的原理实现机制。什么意思,打个比方来说,你想上网,你不需要自己做一个modem的板子,然后再写如何驱动联网的程序,而你只需要买一个modem回来,然后提供电话连接,然后提供上网的用户名和密码就可以拨号了。拨号之后,他会自动提...
Android中BindService方式使用的理解

Android中BindService方式使用的理解

最近学习了一下Android里面的Service的应用,在BindService部分小卡了一下,主要是开始没有彻底理解为什么要这么实现。BindService和Started Service都是Service,有什么地方不一样呢:1. Started Service中使用StartService()方法来进行方法的调用,调用者和服务之间没有联系,即使调用者退出了,服务依然在进行【onCreate()- >onStartCommand()->st...
Android的Handler总结

Android的Handler总结

一、Handler的定义:主要接受子线程发送的数据, 并用此数据配合主线程更新UI.解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button, Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据,或者读取本地较大的一个文件的时候,你不能把这些操作放在主线程中,如果你放在主线程中的话,界面...
Android 弧形进度条

Android 弧形进度条

Android自带的progressbar组件基本可以满足常用的一些需求,最近一套新UI用到了弧形的进度条,如图最初看到,自己是想自己实现,涉及到的问题就比较多,需要一些精确的计算画上去,整个屏幕的背景图是这样的:不过在动手前,自己又百度了一些自定义进度条的文章看了一下。看了一篇受了很大的启发,这个弧形的效果完全可以用一个垂直的进度条来实现。使用这样一张图:弧形与背景图的轨迹一样,然后整张图是长方形,不过背景是透明的,这样以后这样将android的prog...
强大的Vim配置,让编程更随意

强大的Vim配置,让编程更随意

花了很长时间整理的,感觉用起来很方便,共享一下。我的vim配置主要有以下优点:1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改3.映射“Ctrl + A”为全选并复制快捷键,方便复制代码4.按“F2”可以...
Shell编程检测监控MySQL的CPU占用率

Shell编程检测监控MySQL的CPU占用率

shell编程很强大!网站访问量大的时候mysql的压力就比较大,当mysql的CPU利用率超过300%的时候就不能提供服务了,近乎卡死状态,这时候最好的方法就是重启mysql服务。由于这种事具有不可预见性,我们不知道什么时候mysql的占用率达到300%,还是写个程序定期判断比较靠谱。学了shell编程,写了下面的脚本:#!/bin/bash cpu=`ps aux | grep "mysqld$" | cut -d " " -f6 | cut -d. ...
Android访问webservice.客户端登录注册

Android访问webservice.客户端登录注册

今天把登录注册写了一下,百度解决了两个问题:1.模拟器输入中文,就长按然后选择谷歌输入法就好2.得到自定义的Dialog上的组件信息,主要要通过view获得,不能直接就用findviewbyid之前的saveUser 和 findUserByName也简单的封装成了函数界面如下,一切从简单处理后台打印处理结果关于这个对话框,处理逻辑比较麻烦。使用SharedPreferences保存一个变量来控制对话框的出现。第一次登陆的时候要出现,登录成功后,下次一次就...
Android教程:在百度地图上画出轨迹

Android教程:在百度地图上画出轨迹

接着上面的项目《Android访问webservice.客户端登录注册》http://www.linuxidc.com/Linux/2013-04/82747.htm,实现餐厅搜索,这个在吃客游记里就做过了,然后把餐厅显示出来,可以把该餐厅加入轨迹关于轨迹点操作的前后台实现和之前的登录注册差不多,这里主要说一下,用户查看自己的轨迹时候,在手机端的显示。1.从服务器把轨迹点拿下来2.地图上显示点3.把点连成线看代码吧,注释比较详细,关键的画线操作就在Over...
Linux设备驱动的Hello World—LED驱动

Linux设备驱动的Hello World—LED驱动

要看懂驱动源码,肯定是要从最基本的看起,C语言中,如printf("hello world ");而对于驱动,肯定是LED,呵呵,恰好年轻时写过一个,还保留着,而且是流水灯式的,下面以ARM270(共有8个LED灯)为例。一、无操作系统时的LED驱动 在嵌入式系统的设计中,LED一般直接由CPU的GPIO(通用可编程 I/O 口)控制。GPIO一般由两组寄存器控制,即一组控制寄存器和一组数据寄存器。控制寄存器可设置GPIO 口的工作方式为输入或输出。当引...
<< 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 >>