Android就是披着JAVA外衣的C啊~音频解码原来是直接调用的本地C方法直接通过硬件解码的,JAVA和C的字节数组存放模式不同(java是大端,C根据不同平台不同),不同格式需要转化以后才能用. 涨知识~~~…
在 Android 中播放音频文件一般都是使用 MediaPlayer 类来实现的,它对多种格式的音 频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单.下表列出了 MediaPlayer 类中一些较为常用的控制方法. 方法名 功能描述 setDataSource() 设置要播放的音频文件的位置. prepare() 在开始播放之前调用这个方法完成准备工作. start() 开始或继续播放音频. pause() 暂停播放音频. reset() 将 MediaPlayer 对象重置…
在讨论stagefright如何调用硬件解码之前,我们要先清楚几个问题. 我不展开这几个结论是如何得来的,因为这部分属于进程间通信binder的理解,和多媒体本身无关. 一.问题空间 这个有点像方法学上的东西了,呵呵.其实我们讨论一个问题,首先要观注的就是,什么是我们应该关心的,什么是我们在这个问题空间里不用解决的. 上次我们说到,awesomeplayer所有codec,包括软解与硬解的,都是由omx封装的. 我的第一个结论就是:OMX是一个server,等同于surfaceflinger,a…
对于录制音频,Android系统就都自带了一个小小的应用,可是使用起来可能不是特别的灵活.所以有提供了另外的俩种. 下边来介绍下这三种录制的方式; 1.通过Intent调用系统的录音器功能,然后在录制完毕保存以后在onActivityResult中返回录制的音频的uri,然后通过Mediaplayer进行播放 调用系统的录音器 private final static int REQUEST_RECORDER = 100; private Uri uri; public void recorde…
Android 在播放音频和视频方面也是做了相当不错的支持,它提供了一套较为完整的API,使得开发者可以很轻松地编写出一个简易的音频或视频播放器.今天我们开始android中音频和视频使用的学习. 目录导航 音频的播放 视频的播放 友情链接 音频的播放 项目结构如下:一个简单的读取sd卡上的音频或者视频资源的应用…
Eclipse中Android公共库的正确建立及调用方法 引言 之前一直头痛于没有办法在多个程序中共享资源,用作公共类库的方法也是使用的导出jar再导入的办法,现在终于初步搞明白了,可算解脱了~,分享出来. 建立公共库 首先建立公共库的Android项目,名为MyCoreLib: 完成后在左侧包浏览器里右键点选我们新建的这个项目,选择Properties项: 左侧选择Android分类,右侧勾选Is Library选项: 完成后在包资源管理器中删除默认生成的资源,以避免以后被引用时冲突: 打开A…
1.接口 接口可以隐藏代码内部的细节,只暴露程序员想暴露的方法 2.利用上面的思想优化之前的案例:服务(service)之绑定服务调用服务里面的方法,如下: (1)这里MainActivity.java: package com.itheima.bind; import android.app.Activity; import android.content.ComponentName; import android.content.Intent; import android.content.…
1.绑定服务调用服务里面的方法,图解: 步骤: (1)在Activity代码里面绑定 bindService(),以bind的方式开启服务 :                     bindService(intent, new MyConn(), BIND_AUTO_CREATE): 参数intent:意图对象,服务对应的意图对象  new  Intent(this,Service.class) 参数ServiceConnection (接口,自定义其接口实现内部类MyConn() ):通讯…
本篇将讲解一个简单的Android与JavaScript之间的简单调用的小程序 效果图 工程结构 HTMLActivity.java代码 package com.example.javatojs; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.webkit.WebView; public class HTMLActivity extends Acti…
利用广播调用服务里面的方法,间接的方式调用服务内部的方法,与现实中差不多,请媒体曝光 主界面里面 在界面创建的时候开启一下服务普通的startService()方法 发送一条广播出去 获取Intent对象,通过new出来 调用Intent对象的setAction()方法,参数:一般就是包名 调用sendBroadcast(intebt)方法,发送广播,参数:Intent对象 服务里面 新建一个MyService类继承系统的Service类 添加一个自定义的服务的方法callServiceMeth…
上一篇文章中我们介绍了使用Messenger来进行进程间通信的方法,但是我们能发现Messenger是以串行的方式来处理客户端发来的信息,如果有大量的消息发到服务端,服务端仍然一个一个的处理再响应客户端显然是不合适的.另外,Messenger用来进程间进行数据传递但是却不能满足跨进程的方法调用,接下来我们来使用AIDL来实现跨进程方法调用 1. 创建AIDL文件 我们将项目的目录结构调为Android模式,在java同级目录创建aidl文件夹,在文件夹中创建一个包名和应用包名一致的包  我们先创…
PS: 该篇博客已经deprecated,不再维护.详情请參见  站在源代码的肩膀上全解Scroller工作机制  http://blog.csdn.net/lfdfhl/article/details/53143114 MainActivity例如以下: package cc.ww; import android.os.Bundle; import android.widget.ImageView; import android.widget.ImageView.ScaleType; impo…
2017年開始上班的第一天.老不想工作了,假期感觉还没開始就已经结束了,唉,时间就是这样,新的一年開始了,尽管非常不想干正事,没办法,必须干起来.由于后边的路还非常长,距离六十岁还非常远. 刚上班也没什么事,复习一下之前的东西,看了一下Aidl相关的知识.细致瞅了瞅Aidl的调用流程,这里写篇文章整理一下.帮助大家的同一时候.自己也加深一下印象.对Aidl不太了解的童鞋能够先看一下我之前的一篇文章, 链接例如以下:http://blog.csdn.net/liuyonglei1314/artic…
Android Activity 常用技巧 Android Activity 启动模式和任务栈 Android 页面跳转之生命周期调用顺序问题 一.页面跳转逻辑分析 1.1 跳转逻辑分析 Android在界面跳转的时候,比如从Activity A 跳回 Activity B,并不是先执行A的onDestroy,而是执行完A的onPause之后就立即跳回Activity B里的onResume.在执行了Activity B 的onResume之后一两秒甚至更长一点的时间才执行Activity A里…
本节用的so是上节用Android Studio创建的so.想在Android Studio中调用so中的方法,需要先引用so.Android Studio中引用so的方法有二种,下面开始介绍. 一 引用so  在app/src/main目录下新建Directory,命名文件夹为jniLIB(文件名不能错),把so文件放进去 ,如图: 二 编写java代码调用so中方法 ①在代码中引用so 创建myJNI.java文件,用System.loadLibrary加载so,同时声明so中的HelloW…
MediaCodec的使用demo: https://github.com/vecio/MediaCodecDemo https://github.com/taehwandev/MediaCodecExample http://bigflake.com/mediacodec/ 以下文章转载自: https://www.polarxiong.com/archives/Android-MediaCodec%E8%A7%86%E9%A2%91%E6%96%87%E4%BB%B6%E7%A1%AC%E4…
android开发源代码分析--多个activity调用多个jni库的方法 有时候,我们在开发android项目时会遇到须要调用多个native c/jni库文件,下面是本人以前实现过的方法,假设有知道其它方法,还望不吝不吝赐教. 比如,在androidproject里有两个activity,各自是activity1和activity2.(能够进入project文件夹bin/classes路径下查看有哪些).在这两个activity里都有调用jni,过程例如以下: 1.  在activity1和…
1. 概述 bindService() 绑定服务  可以得到服务的代理人对象,间接调用服务里面的方法. 绑定服务: 间接调用服务里面的方法.           如果调用者activity被销毁了, 服务也会跟着销毁           (不求同时生,但求同时挂)          开启服务: 不可以调用服务里面的方法.           如果调用者activity退出了, 服务还会长期的在后台运行 生命周期: 1.单独调用  startService() - oncreate        …
系统已经有的东西,如果我们没有新的需求的话,直接调用是最直接的.下面讲讲调用系统相机拍照并保存图片和如何调用系统相册的方法. 首先看看调用系统相机的核心方法: Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(camera, CAMERA); 相机返回的数据通过下面的回调方法取得,并处理: public static final int CAMERA  = 0x01; @Over…
首先贴一张官方对于ios与android上音频格式的推荐: 这里只给出了推荐格式,一般我们在实际运用中会使用如下方式: 一.IOS与安卓各一套:音乐:都使用MP3    音效:ios用caf Android用ogg 二.使用通用的MP3格式 需要注意的是在IOS上MP3的比特率过大或者过小都可能播不出来,官方没有给出具体原因: 一般使用128kpbs与65kbps…
正如Android调用JNI本地方法经过有点改变章所说跟踪代码是可行的,但是跟踪某些代码会出现anr,点击取消,还是不好运,有提高办法吗?回答是有(gdb还没试过,本文只讨论ida). 下面是我使用 0 * Message("%s = %d\n", GetString(Dword(R2+0x10),-1, ASCSTR_C), R2+0x20)打出的记录 "unlockCanvasAndPost""native_computeBounds"&qu…
方法注册好后要经过哪些路 Android一个异常捕获项目 https://github.com/xroche/coffeecatch coffeecatch CoffeeCatch, a tiny native POSIX signal catcher (especially useful for JNI code on Android/Dalvik, but it can be used in non-Java projects) It allows to "gracefully"…
生成 jni方式有两种:一种是通过SWIG从C++代码生成过度的java代码:另一种是通过javah的方式从java代码自动生成过度的C++代码.两种方式下的步骤流程正好相反. 第一种方式:由于需要配置SWIG环境,有点麻烦了,所以往往大家不采用这个途径,参照博文http://my.oschina.net/liusicong/blog/314162. 第二种方式:javah的方式则通过shell指令就可以完成整个流程,该过程大概包括以下步骤: 编写 Java 代码.我们将从编写 Java 类开始…
1. 接口 接口可以隐藏代码内部的细节,只暴露程序员想暴露的方法 2. 利用上面的思想优化之前的案例:服务(service)之绑定服务调用服务里面的方法,如下: (1)这里MainActivity.java: package com.itheima.bind; import android.app.Activity; import android.content.ComponentName; import android.content.Intent; import android.conten…
1.绑定服务调用服务里面的方法,图解: 步骤: (1)在Activity代码里面绑定 bindService(),以bind的方式开启服务 :                     bindService(intent, new MyConn(), BIND_AUTO_CREATE): 参数intent:意图对象,服务对应的意图对象  new  Intent(this,Service.class) 参数ServiceConnection (接口,自定义其接口实现内部类MyConn() ):通讯…
public class MainActivity extends AppCompatActivity { private MyConn conn; private Iservice myBinder; // 我定义的中间人对象 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mai…
Fragment使用方式大体分两种: 大家要注意不同的Fragment使用方法,Fragment隐藏和显示调用的生命周期方法是不同的,以下是Fragment显示隐藏调用的方法: //判断是否展示—与ViewPager连用,进行左右切换@Overridepublic void setUserVisibleHint(boolean isVisibleToUser) {super.setUserVisibleHint(isVisibleToUser);if (isVisibleToUser)//展示}…
[正文] 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 "超文本传输协议",是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议,是Internet上目前使用最广泛的应用层协议,它基于传输层的TCP协议进行通信,HTTP协议是通用的.无状态的协议. 这几个名词有一种通俗的解释: 通讯协议:双方对话的标准 通用的:用了都说好,谁用谁知道 无状态的:翻脸不认人 超文本:除了文本,还可以是音频.视频 HTTP协议与Android开发之…
工作上遇到IOS的webView中的H5页面需要透明以显示webView的背景颜色.用H5自身的透明度的css样式或者js控制背景颜色及透明度都打不到想要的效果,最后还是通过ios设置webView中的body颜色及透明度来实现的,具体代码如下: -(void) webViewDidFinishLoad:(UIWebView *)webView { [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTa…
java 调用webservice的各种方法总结 几种流行的开源WebService框架Axis1,Axis2,Xfire,CXF,JWS比较 方法一:创建基于JAX-WS的webservice(包括服务器端和客户端) 以下转载自http://www.cnblogs.com/jasoncc/archive/2011/12/22/2296052.html 今天主要和大家分享,如何搭建一个Web服务,做Android开发,不可避免会涉及到客户端开发,我们怎么样来实现一个服务端,怎么样来实现一个客户端…