Android
文章平均质量分 87
coloriy
这个作者很懒,什么都没留下…
展开
-
Andorid 硬件显示系统HWC&HWC2架构详解
硬件合成HWC2Hardware Composer HAL (HWC) 是 SurfaceFlinger 用来将 Surface 合成到屏幕。HWC 可以抽象出叠加层和 2D 位块传送器等,其主要是帮忙GPU完成一些工作。SurfaceFlinger是一个系统服务,其作用是接受来自多个源的Buffer数据,对它们进行合成,然后发送到显示设备进行显示。在之前的Android版本中,显示基本都是基于硬件的FrameBuffer来实现的,例如/dev/graphics/fb0,但是在后来的版本中,实现可以转载 2020-06-05 11:13:19 · 7244 阅读 · 3 评论 -
Android系统移植boot-loader
Android系统由于用的是linux内核,因此内核移植和嵌入式linux内核移植差异不大,过程如下:原文(1)移植boot-loader和linux2.6内核到目标平台上,让linux内核可以启动起来,基本的驱动允许正常。此过程完全是嵌入式linux的开发,这里直接跳过。需要注意的是,由于android已经被linux官方开除,因此从网站上(如http://www.kernel.or转载 2011-12-19 17:04:28 · 1026 阅读 · 0 评论 -
Wifi 技术简介
1. IE802.11简介标准号IEEE 802.11bIEEE 802.11aIEEE 802.11gIEEE 802.11n标准发布时间1999年9月1999年9月2003年6月2009年9月工作频率范围2.4-2.4835GHz5.150-5.350GHz5.475-5.725GHz5.725原创 2012-12-04 12:01:50 · 1457 阅读 · 0 评论 -
Java与C++之JNI架构编程总结
Java与C++之JNI编程小结 --- jack 于湖大 1. 什么是 JNI JNI是Java Native Interface的缩写。从Java 1.1开始,JNI标准转载 2011-08-16 10:01:18 · 657 阅读 · 0 评论 -
主流GPU介绍
ARM Mali、PowerVR SGX、高通Adreno、NVIDIA Tegra 2四大系列1. Mali-400MP最大的缺点就是支持的纹理单一。并且不兼容许多主流特效,造成了兼容性非常差,强大的性能反倒是转变成了发热量,并变成了累赘。比如使用jpg做为纹理性能很差,使用pkm做为纹理性能很好。2. SGX540最大的优点就是兼容效果强,而且性能也不错。其性能比单核的Mali原创 2012-12-04 12:04:40 · 968 阅读 · 0 评论 -
Android多媒体系统分析-AudioTrack
1.1 AudioTrack1.1.1 AudioTrack应用实例对于Android应用开发人员来讲,音频回放最熟悉的莫过于MediaPlayer,而AudioTrack相信用的人相对会少很多。这是因为MediaPlayer提供了更完整的封装和状态控制,使得我们用很少的代码就可以实现一个简单的音乐播放器。而相比MediaPlayer,AudioTrack更为精练、高效,实际上Medi转载 2015-08-10 10:50:27 · 845 阅读 · 0 评论 -
Android多媒体系统分析-Handler, MessageQueue, Runnable与Looper概念
相信不少人对这几个概念深恶痛绝,因为它们“像雾像雨又像风”——自我感觉都很熟识,如果下一次再相遇,却又陌生得很。这种“隔靴搔痒”的感觉促使我们必须与这些“顽固分子”来个彻底的决断。 先不要想太多,任头脑中随意画下对这些概念的第一印象,如图5-5所示。 ▲图5 5 概念初探 图5-5是我们对这几个概念的“感官”释义,读者可以尝试着思考下是否和自己所想的基本一致。 那么,如果把这转载 2015-08-10 11:08:32 · 608 阅读 · 0 评论 -
android多媒体系统分析-AudioPolicyService
1.1.1 AudioPolicyServiceAudioPolicyService的路由实现我们在AudioPolicyService小节曾将其比作是一个“路由器”,不过还没有深入解析它是如何完成路由选择的。这部分的功能与使用者——AudioTrack有很大关联,所以我们特别将它的实现原理剖析放在这里,以使读者可以综合起来理解。路由器功能由如下几个部分组成:l转载 2015-08-10 10:59:50 · 935 阅读 · 0 评论 -
Android多媒体框架分析-AudioFlinger
1.1 AudioFlinger在上面的框架图中,我们可以看到AudioFlinger(下面简称AF)是整个音频系统的核心与难点。作为Android系统中的音频中枢,它同时也是一个系统服务,启到承上(为上层提供访问接口)启下(通过HAL来管理音频设备)的作用。只有理解了AudioFlinger,才能以此为基础更好地深入到其它模块,因而我们把它放在前面进行分析。 1.1.1 Au转载 2015-08-10 17:50:18 · 745 阅读 · 0 评论 -
Chromium多进程架构初探-兼谈Android平台版本
Chromium以多进程架构著称,它主要包含四类进程,分别是Browser进程、Render进程、GPU进程和Plugin进程。之所以要将Render进程、GPU进程和Plugin进程独立出来,是为了解决它们的不稳定性问题。也就是说,Render进程、GPU进程和Plugin进程由于不稳定而引发的Crash不会导致整个浏览器崩溃。本文就对Chromium的多进程架构进行简要介绍,以及制定学习计划。转载 2015-08-11 11:00:04 · 871 阅读 · 0 评论 -
sqlite3 — 轻量级嵌入式平台数据库开源软件
嵌入式设备的资源是非常珍贵的,直接决定了产品前期开发的投入,而在后期将影响产品投放市场后的利益回报率的高低。小型的许多嵌入式设备在存储上都做了必要的让步,采用文件存储这样比较传统但是方便的方法。而对于数据量比较大,数据读入读出比较频繁的项目,大家都比较倚重SQLserver,Oracle等大型数据库。我没做过具体的数据分析,只是简单在网上看过一些统计资料。笔者曾做过基于sqlite3的应用开发,为转载 2015-08-11 10:40:24 · 2639 阅读 · 0 评论 -
Android开源项目分类汇总
http://itindex.net/detail/51896-github-android-%E5%BC%80%E6%BA%90今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫的界面特效设计、个性化控件、工具库、优秀的Android开源项转载 2015-08-14 10:35:42 · 1659 阅读 · 0 评论 -
Mac下为Android Studio编译Ffmpeg(一)ndk部分
本文参考http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/。但它只适合做编码,而且没有Android Studio配置的部分。1、下载ndk我下的是r10d版本。2、解压ndk不要解压,文件权限会出错。执行之,会自动解压,然后mv到想放的地方。我放到了”/usr/local/bin/android-ndk-r10d”(转载 2015-08-06 14:45:51 · 1648 阅读 · 0 评论 -
Mac下为Android Studio编译Ffmpeg(二)Android Studio部分
Android Studio和Eclipse不太一样,它有一定的自动生成Android.mk并自动搞定JNI的能力。但目前还并不足以让我们使用起来Ffmpeg库。因此我们的思路是禁用掉Android Studio自动ndk-build的功能,手动编译我们的C代码达到目的。首先当然要新建一个Android Studio项目。我们使用$ROOT_DIR指代项目根目录。1、Andro转载 2015-08-06 14:46:04 · 865 阅读 · 1 评论 -
Android 用MediaCodec实现视频硬解码
http://blog.csdn.net/halleyzhang3/article/details/11473961http://www.360doc.com/content/14/0119/10/8122810_346350456.shtmlAndroid 用MediaCodec实现视频硬解码本文向你讲述如何用android标准的API (Medi转载 2015-08-06 14:41:19 · 1588 阅读 · 0 评论 -
android浏览器插件介绍
一 浏览器插件介绍: 1.1 概述浏览插件本质是一个功能模块,是浏览器功能的一种扩充。其载体是dll或则so文件。它依附浏览器完成某一特定的功能。插件需要实现浏览器规定的一些函数,这些函数叫NPAPI.正是插件实现了这些函数才可以和浏览器交互。同时浏览器也为插件提供一些函数。在android平台下还有一些专有的函数。他们的函数名字都有约定。插件提供的方法以NPP_打头。浏览器提供的方法转载 2015-08-19 11:32:13 · 1447 阅读 · 0 评论 -
DRM in Android
DRM,英文全称为Digital Rights Management,译为数字版权管理。它是目前业界使用非常广泛的一种数字内容版权保护技术。随着知识产权保护受重视的程度日益提高,快速攻城略地得Android智能手机是如何利用DRM来有效保护数字版权的呢?本文将通过剖析Android中的DRM框架以及相关工作流程来向读者揭示DRM的神秘面纱。一 DRM架构介绍严格来讲,DRM不是一项技转载 2015-08-19 11:21:48 · 1040 阅读 · 0 评论 -
android 外挂字幕接口
参考:http://developer.android.com/reference/android/media/MediaPlayer.html1.调用mediaplayer类中的addTimedTextSource (String path, String mimeType)方法, 设置需要显示的外挂字幕文件路径。2. 通过回调通知上层应用绘制字幕转载 2015-08-19 11:42:46 · 3440 阅读 · 0 评论 -
Qualcomm 高通芯片组与Android音频系统缺陷测评分析
最近在看音频重采样问题,看到一篇文章,虽然比较老了,针对的是Android2.3版本,不过里面一些概念还是值得学习一下的,所以转载过来,学习学习。原文地址:http://www.soomal.com/doc/10100002164.htmQualcomm高通公司是目前Android智能手机上最为知名的ARM架构的处理器和芯片方案硬件提供商,高通公司的Snapdragon系列中的QSD8转载 2015-08-19 12:42:47 · 1380 阅读 · 0 评论 -
Android上的resample处理
Android上的resample处理默认的情况下,Android放音的采样率固定为44.1khz,录音的采样率固定为8khz,因此底层的音频设备驱动只需设置好这两个固定的采样率。如果上层传过来的采样率与其不符的话,则Android Framework层会对音频流做resample(重采样)处理。Resample的大致流程如下: AudioResample作为最转载 2015-08-19 12:50:52 · 3870 阅读 · 0 评论 -
ANDROID音频系统散记之五:如何绕开多媒体音轨的重采样
两年前,Android智能手机的音质还广受诟病,那时不仅不能与专业影音设备相提并论,连48KHz采样率的声音都要强制成转换成44.1KHz输出,这种非线性重采样极大地损坏了音质,加剧互调失真。对于此的较完整分析见:http://www.soomal.com/doc/10100002164.htm后来,Android智能手机竞争越来越大,同质化也越来越严重。因此,音质的提升成了一个重大卖点,转载 2015-08-19 12:53:44 · 3845 阅读 · 0 评论 -
摄像机工作原理
1、持续对焦和触摸对焦的工作原理;答:首先要了解一下对焦的工作原理。AF工作原理:就是通过微距移动镜头,sensor采集图像并传送给ISP处理,ISP把当前frame的对比度值(FV)记录下来并保存为A1,同时按照固定的step把镜头移动到下个位置。下个frame时,sensor又采集图像并传送给ISP处理,ISP把当前frame的对比度值(FV)记录下来并保存为A2。通过A1转载 2015-08-19 13:01:13 · 6516 阅读 · 0 评论 -
Android之UI
UI界面,对于每个应用而言,是它与用户进行交互的门脸。好的门脸,不只是是要亮丽可人,最好还能秀色可餐过目不忘,甚至还应该有涵养有气质,彬彬有理温柔耐心。 对于开发者来说,锻造这样的面容,不但需要高超的技艺,也需要有称手的工具和对得起党的料子。俗话说,朽木不可雕也,芙蓉不是一日炼成的,不是什么平台都能叫特能书。有套好用的UI框架,对于开发者而言,真有如沙漠中的甘露,而要是撞见了杯具的UI套转载 2015-08-19 13:03:38 · 320 阅读 · 0 评论 -
2015上半年手机GPU排行榜
回望目前智能手机处理器的发展,重点似乎更多的是放在CPU上,无论是主频还是核心数量,都不断得到提升。然而,对喜欢游戏的用户来说,GPU更是显得尤为重要。手机芯片GPU模块类似电脑显卡,一个优秀的GPU会为你玩游戏带来非凡的体验,尤其在玩大型3D游戏时,GPU的优劣直接影响了整个游戏体验。在如今越来越追求大屏及高清2K、甚至4K屏的时代,GPU承载的压力也越来越大。排行榜数据从哪来?转载 2015-08-19 13:16:19 · 649 阅读 · 0 评论 -
利用ffmpeg和SDL实现一个跨android版本的音视频播放器
1:从http://www.libsdl.org/tmp/下载SDL for android 版本(我下载的是 SDL-1.3.tar.gz ) 2:从https://github.com/havlenapetr/FFMpeg下载 havlenapetr 的ffmpeg for android版本。 3:把你下载的SDL for android版本解压到本地目录,解压到本地.转载 2015-09-15 13:36:28 · 989 阅读 · 0 评论 -
linux 以及android 系统下常用命令备忘
查看磁盘空间: $df -lh查看目录大小: $du -sh dir计算Android系统某个目录下的文件个数,不包含目录:$adb shell ls -l /removable/sda1/local | grep "^-" |wc -lAndroid系统下显示CPU占用率最高的指定个数的(-m 10)正在运行的进行进程信息(3s刷新一次): $top -d 3 -m 10原创 2015-10-22 19:14:49 · 517 阅读 · 0 评论 -
Android.mk文件语法
1、Android.mk文件概述Android.mk文件用来告诉NDK编译系统,应该如何编译这些源码。更确切地说,该文件其实就是一个小型的Makefile。该文件会被NDK的编译工具解析多次,所以要注意不要过多使用环境变量,以免第一次解析时产生的变量影响后面的解析。Android.mk把源码组织成不同的模块,每个模块可以是一个静态库也可以是一个动态库。动态库才会被拷贝到安装包中,静态库转载 2015-09-23 13:49:53 · 494 阅读 · 0 评论 -
Android NDK预编译库设置方法
Android NDK r5 开始支持预编译库(动态库和静态库),即程序能使用库的预编译版本。该特性可用于以下两方面:1)向第三方NDK开发人员发布你的共享库而不用提供源码。2)使用一个提前编译好的库(预编译库)来加速编译过程。本文说明该特性如何工作。I. 声明一个预编译库的模块对于Android编译工具而言,每个预编译库必须声明为一个独立的模块。这里举一个例子转载 2015-09-23 13:51:42 · 1383 阅读 · 0 评论 -
Android使用ant编译APK
ANT是java开发的很好的构建工具,很多开源项目都是使用ANT来构建的,并且ANT和JUNIT可以很好的配合使用,生成非常完美的测试报告,帮助开发人员开发。作为一名开发人员,如果一天天的时间都花在项目的部署和简单的测试上,是一种巨大的浪费;而ANT可以帮助我们完成一些单调而无聊的事情,使开发人员从这些无聊的工作中解脱出来;能更加专注于业务。 在我的博客中,我将系列的讲解ANT的使用转载 2015-09-23 13:05:08 · 502 阅读 · 0 评论 -
ndk-build的用法
1、ndk-build的用法Android NDKr4引入了一个新的、小巧的shell脚本ndk-build,来简化源码编译。该文件位于NDK根目录,进入你的工程根目录或子目录之后,在命令行下调用即可。例如: cd $PROJECT $NDK/ndk-buildNDK指向你的NDK的安装目录,PROJECT指向你的Android工程目录。建议将n转载 2015-09-23 12:57:07 · 496 阅读 · 0 评论 -
How to get the root permission of android
Now we build the android-5.1.1_r2, while after we flash the img into the nexus 9. we need get the root permission to push out library into the device.The following steps is how to get the root permi原创 2015-09-24 12:38:42 · 652 阅读 · 0 评论 -
使用 fastboot oem unlock来对nexus 9解锁 .
http://www.droid-life.com/2013/11/04/how-to-unlock-the-nexus-5-bootloader/http://www.inexus.co/thread-18503-1-1.htmlhttp://www.ibtimes.co.uk/how-root-google-nexus-9-unlock-bootloader-14738原创 2015-09-24 14:20:40 · 9944 阅读 · 0 评论 -
Nexus 之 Android 5.1源码编译
购买Nexus手机的朋友大多是为了自己修改系统玩,再加上其较高的性价比,在开发者中还是广受欢迎的。我的5太子被我升级到了6.0预览版,玩的正嗨,舍不得换回到5.1时代了。不过鉴于距6.0源码发布还有段日子,5.1的源码编译与烧写仍是主流,下面就记录了整个过程(持续了很长时间,我们要有耐心)。搭建开发环境系统推荐Ubuntu 14.04 1.openjdk is needed转载 2015-10-15 10:45:58 · 1055 阅读 · 0 评论 -
ubuntu14.04编译android源码
Initializing a Build EnvironmentIN THIS DOCUMENTChoosing a BranchSetting up a Linux build environmentInstalling the JDKInstalling required packages (Ubuntu 14.04)Installing require转载 2015-10-15 15:20:16 · 1660 阅读 · 0 评论 -
A practical approach to the AOSP build system
http://www.jayway.com/2012/10/24/a-practical-approach-to-the-aosp-build-system/IntroductionThe Android open-source project (AOSP) is quite complex and it can be hard to find a good way to ge转载 2015-12-30 11:30:01 · 583 阅读 · 0 评论 -
how to write one native program based on android source build system
Posted by Charles Wilde on Jul 31, 2009 in All, Android, Mobile Application Development, Mobile Software | 3 commentshttp://www.charleswilde.com/android-native-development-using-the-androi转载 2015-12-30 16:33:54 · 971 阅读 · 0 评论 -
Android 集成Valgrind内存泄露检测工具
自己一直在linux下使用valgrind用于应用内存泄漏,网上也找到了宋宝华老师写的有关源码编译移植的文章。我发现在我android编译后out目录里面就有相关的valgrind文件。所以就懒得下载valgrind源码了。./target/product/g18ref/symbols/system/bin/valgrind./target/product/g18ref/symbols/sy转载 2016-01-05 10:07:11 · 1161 阅读 · 0 评论 -
mac 搭建android studio 开发环境
1)下载最新jdk8,下载android studio2)安装jdk8,双击jdk8的安装包,将jdk8的安装包拖到Application,可能会出现这种问题:要求Mac OS X10.7.3或更高版本解决。解决方法:解压安装包,修改里边一个函数的判断,然后再压缩包,再次安装即可,详见:http://blog.csdn.net/jk0803_wantao/article/details/447转载 2015-12-23 15:50:24 · 507 阅读 · 0 评论 -
Android多媒体开发【12】-- android中OpenMax的实现【3】OMX中主要成员
http://blog.csdn.net/tx3344/article/details/8117908通过上文知道了,每个AwesomePlayer 只有一个OMX服务的入口,但是AwesomePlayer不一定就只需要1种解码器。有可能音视频都有,或者有很多种。这个时候这些解码器都需要OMX的服务,也就是OMX那头需要建立不同的解码器的组件来对应着AwesomePlayer中不同的c转载 2016-02-17 10:24:30 · 728 阅读 · 0 评论 -
libxx.so has text relocations. This is wasting memory and prevents security hardening. Please fix
Root cause: using the scanelf to scan the library, you can find the fllowing issue: #scanelf -R . -qt TEXTREL ./libxx.sobefore the Android M(6.0), it is only one warni原创 2016-04-06 13:24:49 · 3550 阅读 · 0 评论