- Android-深入理解JNI
天津 唐秙
Androidjavaandroid系统架构java
文章目录1.JNI1.1JNI概念1.2学习JNI的实例:MediaScanner1.3Java层的MediaScanner1.4JNI层MediaScanner1.4.1注册JNI函数1.4.2数据类型转换1.4.3JNIEnv介绍1.4.4通过JNIEnv操作jobject1.4.5jstring介绍1.4.6JNI类签名介绍1.4.7垃圾回收1.4.8JNI中的异常处理1.5重点1.JNI1
- 深入理解JNI阅读笔记
坠叶飘香
1.JNI库的名字Android平台基本上都采用"lib模块名_jni.so"命名方式例如:MediaScanner和它的JNI2.加载JNI库frameworks\base\media\java\android\media\MediaScanner.javastatic{System.loadLibrary("media_jni");}
- 深入理解JNI
MrDecoder
JNI概述学习JNI实例:MediaScanner注册JNI函数数据类型转换JNIEnv介绍一、JNI概述JNI全称,JavaNativeInterface——Java提供了Java层与Native层交互的桥梁。通过JNI技术我们可以做到如下:Java程序中的函数可以调用Native[C/C++]语言编写的函数。Native层中的函数可以调用Java层的函数,也就是说C/C++函数中可以调用Jav
- Android MediaScanner 详尽分析
huichengongzi
Android多媒体
http://blog.csdn.net/innost/article/details/6083467
- android原生态音乐播放器中文歌曲乱码问题——没落的MIPS
CallMeKendy
基于android4.2,主要出现在mips架构,arm架构上没有此现象。猜测与MediaScanner有关,一直跟代码,跟啊跟,跟啊跟。跟到frameworks/base/media/jni/android_media_MediaScanner.cpp文件的handleStringTag函数,它的实现如下:119 virtualstatus_thandleStringTag(constcha
- android 扫描SD卡与系统文件
cai200711
当手机或模拟器开机时,会调用android的MediaScanner,扫描sd卡和内存里的文件。以下是log信息。112-1315:39:11.062:VERBOSE/MediaPlayerService(67):Createnewmediaretrieverfrompid349112-1315:39:11.082:DEBUG/MediaScannerService(349):getDefault
- android 扫描SD卡与系统文件(转)
lds8988
Androidandroidactionstringnullfile数据库
当手机或模拟器开机时,会调用android的MediaScanner,扫描sd卡和内存里的文件。以下是log信息。12-1315:39:11.062:VERBOSE/MediaPlayerService(67):Createnewmediaretrieverfrompid34912-1315:39:11.082:DEBUG/MediaScannerService(349):getDefaultLo
- 总结系列-Android文件存储相关
ZhangQiang-
Android总结系列[Android开发]
Android开发中有五种数据持久化API:内部存储目录:/data/data/特点:每个应用独占一个以包名命名的私有文件夹在应用卸载时被删除对MediaScanner不可见内部存储位于系统中很特殊的一个位置,对于设备中每一个安装的App,系统都会在data/data/packagename/xxx自动创建与之对应的文件夹Android可以说是一个Linux操作系统,它的内部存储空间对于应用程序和
- 单个文件扫描流程
相太阳
java数据库
待解决:uri:mnt/external/imagemnt/external/file的作用是什么ICS的单个文件mediascnner扫描流程如下:主要过程均在mediascanner.java文件1、beginfile主要是对文件进行一些预处理:1)预先根据文件后缀设定mimetypeif(mFileType==0){//tanqianaddendMediaFile.MediaFileType
- 实现手机来电铃声,通知铃声、警告铃声等音频定制化功能(三,多媒体扫描结果定制处理)
叶桐
本篇博文主要是对MediaScanner中endFile方法的处理流程上的重构,以实现需求中的资源区域化定制。处理思路为首先扫描定制分区中的资源,在扫描系统分区下默认资源时判断定制分区西下是否已经存在相同资源,如果重复则不再插入,反之,插入。此外在设置默认铃音的时候读取定制分区西下如:/myimage/media/audio/下相对应目录下的配置文件,以设置相应的默认铃音。//该方法主要对扫描结果
- Android 音乐乱码问题修改
护士leo
移动开发
对于Android音乐播放器的音乐人,专辑,音乐名字显示乱码的修改做了下总结:方法一:在frameworks\base\media\java\android\media\MediaScanner.java中修改:函数handleStringTag在这个函数中加上字符编码的转换;/*addbytanfusheng@20150110start*/privatebooleanisEncoding(Str
- Android上MediaScanner是如何工作的
mci2004
AndroidMediaScannerAndroid
这里注意两个继承关系,在JAVA层有一个MyMediaScannerClientclass位于MediaScanner.java中,如下代码所示privateclassMyMediaScannerClientimplementsMediaScannerClient在C++层也有一个MyMediaScannerClientclass位于android_media_MediaScanner.cpp中,
- Android属性:所设属性值为何在重起后被清除
fdm0809
Android相关
http://www.2cto.com/kf/201208/148803.html问题:发现adbsehllsetProp所设属性值在下次重起后被清除adbshellsetproptesting.mediascanner.skiplist/storage/sdcard1/test结论:必须采用persist.开头的属性名才能永久保存。Onsysteminitialization,Androidwi
- 通过MediaStore来获取Audio信息
Geek_ZC
安卓踩坑日记
OPhone系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过ContentProvider的方式提供给用户。当手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如audio,video,图片等,将相应的信息放到定义好的数据库表格中。在这个程序中,我们不需要关心如何去扫描手机中的文件,只要了解
- JNI开发笔记(二)
hn_sun
Android
native_init和Java_android_media_MediaScanner_native_init建立关联关系,其实保存JNI层函数的函数指针1.需要编译所有声明了native函数的Java类,每个所生成的class文件都得用javah生成头文件2.初次调用native函数需要根据函数名字搜索对应的JNI层函数建立关联,影响运行效率直接让native函数知道JNI对应函数的函数指针,动
- Android多媒体分析(一)MediaScanner
zqiang_55
Android移动开发Android全面分析android数据库actionserviceframeworksvideo
Android平台上的媒体文件管理和桌面系统不同。在桌面系统上,不同目录下的媒体文件呈树状结构显示给用户,用户需要进入不同目录寻找该目录下的文件。而在Android平台上,不同目录下的媒体文件则以一层列表方式显示给用户,用户不需进入子目录就可以列出(某种类型的)所有媒体文件。在Android上,为了实现这种模式的媒体文件管理,对所有管理的媒体文件抽取其元数据,也就是ID3(mp3文件包含的元数据可
- 移动开发----ContentProvider之通过ContentResolver获取图像、视频、音频举例
丿Wayne
MediaStore中定义了一系列的数据表格,通过ContentResolver提供的查询接口,我们可以得到各种需要的媒体信息。通过以下两个URI可以扫描设备外部和内部的媒体文件。Android系统提供了MediaProvider,MediaStore,MediaScanner接口,通过ContentProvider的方式提供给用户。以下是一个简单的例子:(注意,项目使用AndroidAnnota
- Android四大组件之ContentProvider(二)读取设备上的图片、音频和视频
dztai
Android基础
Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,通过ContentProvider的方式提供给用户。当设备开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如audio,video,图片等,将相应的信息放到定义好的数据库表格中。在这个程序中,我们不需要关心如何去扫描手机中的文件,只要了解如何查询和使用这些信息就
- android中的MediaScanner,MediaStore与MediaProvider
yu890725gong
Android
Android系统提供了对多媒体(图片、音乐、视频等)的统一处理机制,通过一套良好的框架实现了多媒体信息的扫描、存储、读取。用户可以基于这套框架非常方便的对多媒体信息进行处理。显儿易见这套框架主要包含了三部分:MediaScannerService(多媒体扫描服务)MediaStore(多媒体存储)MediaProvider(多媒体内容提供者)那么它们是如何工作的呢,如何对设备上的多媒体进行扫描?
- android framework MediaScanner等sd卡u盘扫描流程简要跟踪分析
xxiang1x
Android开发主线
涉及到的几个类文件:MediaScanner.javaMediaScannerService.javaMediaProvider.javaMediaScannerReceiver.javaandroid_media_MediaScanner.cpp当插入sd卡或者插入U盘时,系统会对其进行文件扫描(音乐,视频,图片等),以及音乐播放器中对音乐文件的扫描获取各种信息也是借助于这几个文件来实现扫描功能
- Android MediaScannerJNI源码详解
微岩
AndroidAndroidFFmpeg多媒体
1.简介MediaScannerJNI的在MediaScanner中的地位可参考AndroidMediaScanner总纲MediaScannerJNI文件名:android_media_MediaScanner.cpp位置:frameworks\base\media\jni\android_media_MediaScanner.cppandroid_media_MediaScanner是JAVA
- Android MediaScanner源代码解析
微岩
AndroidAndroidFFmpeg多媒体
1.简介MediaScanner向上和MediaProvider.MediaScannerService交互,响应其请求;向下和JNI交互.MediaScanner主要工作内容:(1)接收MediaScannerService的scanDirectories和scanSingleFile请求(2)获取各个ContentProvider环境(Audio,Video,Image,File)initia
- Android源代码分析(二) MediaScanner源码分析(上)
wulianghuan
Android源码分析ANDROIDMediaScannerMediaProvider
本人负责公司手机文件管理器模块的开发,经常跟MediaScanner打交道,本篇跟大家一起讨论一下MediaScanner的整体结构、MediaScanner的扫描流程、如何使用MediaScanner进行自定义扫描。MediaScanner是Android系统Media的基础,系统启动之初,就扫描出Media文件供后续使用,有新媒体加入或者删除掉媒体文件,也需要更新相应的媒体库。Android的
- Intent.ACTION_MEDIA_SCANNER_SCAN_FILE:扫描指定文件
wjwang79
1.启动MediaScanner服务,扫描媒体文件:程序通过发送下面的Intent启动MediaScanner服务扫描指定的文件或目录:Intent.ACTION_MEDIA_SCANNER_SCAN_FILE:扫描指定文件[java]viewplaincopyprint?publicvoidscanFileAsync(Contextctx,StringfilePath){IntentscanIn
- 从MediaScanner入手深入学习JNI
weixin_34366546
JNI,是JavaNativeInterface的缩写,中文为Java本地调用。Android系统底层很多是用Native语言写的,比如Java虚拟机。其实Java一直在使用JNI技术。由上图可知,Java层和Native层可以互相调用。Java中叫方法,C中叫函数Java要调用Native层函数,就必须通过一个位于JNI层的动态库(运行时加载库)才能做到。Java层的MediaScanner.j
- Android调用MediaScanner进行新产生的媒体文件扫描
weixin_30614587
有时候,我们拍了一张图片或录制了一段视频,图库应用默认没有将这些新产生的文件识别出来所以打开图库或视频播放器发现没有找到这些文件,需要调用MediaScanner扫描一下才会出来。从FFMPEG中找了一个类用来扫描媒体文件。publicclassFFMpegMediaScannerNotifierimplementsMediaScannerConnectionClient{privateMedia
- android通知扫描某个文件或者文件夹(图库及时更新图片)
BackKom倒霉熊
Android开源
1.启动MediaScanner服务,扫描媒体文件:程序通过发送下面的Intent启动MediaScanner服务扫描指定的文件或目录:Intent.ACTION_MEDIA_SCANNER_SCAN_FILE:扫描指定文件12345publicvoidscanFileAsync(Contextctx,StringfilePath){IntentscanIntent=newIntent(Inten
- Android mediaScanner 删除U盘上的文件
_dowork
Androidcustom
app通过MediaScannerConnection通知Scanner新增文件时会调用scanSingleFile函数,对其修改如下://thisfunctionisusedtoscanasinglefilepublicUriscanSingleFile(Stringpath,StringvolumeName,StringmimeType,StringappPath){//appPath为app
- 多媒体文件管理,资源的扫描MediaScanner(二)
lin-0410
多媒体文件的扫描MediaScanner主要由两部分组成,一是MediaScannerReceiver,一是MediaScannerService,扫描的执行由广播触发。MediaScannerReceiver接收4中类型的广播:AndroidManifest.xml看下执行扫描的具体代码:Packages/providers/mediaprovider/…/MediaScannerReceive
- MediaScanner分析
廖益平
android
MediaScanner分析一MediaScannerService多媒体扫描是从MediaScannerService开始的。这是一个单独的package。位于packagesprovidersMediaProvider:含以下java文件lMediaProvider.javalMediaScannerReceiver.javalMediaScannerService.javalMediaThu
- java观察者模式
3213213333332132
java设计模式游戏观察者模式
观察者模式——顾名思义,就是一个对象观察另一个对象,当被观察的对象发生变化时,观察者也会跟着变化。
在日常中,我们配java环境变量时,设置一个JAVAHOME变量,这就是被观察者,使用了JAVAHOME变量的对象都是观察者,一旦JAVAHOME的路径改动,其他的也会跟着改动。
这样的例子很多,我想用小时候玩的老鹰捉小鸡游戏来简单的描绘观察者模式。
老鹰会变成观察者,母鸡和小鸡是
- TFS RESTful API 模拟上传测试
ronin47
TFS RESTful API 模拟上传测试。
细节参看这里:https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markdown
模拟POST上传一个图片:
curl --data-binary @/opt/tfs.png http
- PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式
dcj3sjt126com
设计模式PHP
// 多态, 在JAVA中是这样用的, 其实在PHP当中可以自然消除, 因为参数是动态的, 你传什么过来都可以, 不限制类型, 直接调用类的方法
abstract class Tiger {
public abstract function climb();
}
class XTiger extends Tiger {
public function climb()
- hibernate
171815164
Hibernate
main,save
Configuration conf =new Configuration().configure();
SessionFactory sf=conf.buildSessionFactory();
Session sess=sf.openSession();
Transaction tx=sess.beginTransaction();
News a=new
- Ant实例分析
g21121
ant
下面是一个Ant构建文件的实例,通过这个实例我们可以很清楚的理顺构建一个项目的顺序及依赖关系,从而编写出更加合理的构建文件。
下面是build.xml的代码:
<?xml version="1
- [简单]工作记录_接口返回405原因
53873039oycg
工作
最近调接口时候一直报错,错误信息是:
responseCode:405
responseMsg:Method Not Allowed
接口请求方式Post.
- 关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别
程序员是怎么炼成的
真正完成类的加载工作是通过调用 defineClass来实现的;
而启动类的加载过程是通过调用 loadClass来实现的;
就是类加载器分为加载和定义
protected Class<?> findClass(String name) throws ClassNotFoundExcept
- JDBC学习笔记-JDBC详细的操作流程
aijuans
jdbc
所有的JDBC应用程序都具有下面的基本流程: 1、加载数据库驱动并建立到数据库的连接。 2、执行SQL语句。 3、处理结果。 4、从数据库断开连接释放资源。
下面我们就来仔细看一看每一个步骤:
其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。
1、加载数据库驱动并建立到数据库的连接:
Html代码
St
- rome创建rss
antonyup_2006
tomcatcmsxmlstrutsOpera
引用
1.RSS标准
RSS标准比较混乱,主要有以下3个系列
RSS 0.9x / 2.0 : RSS技术诞生于1999年的网景公司(Netscape),其发布了一个0.9版本的规范。2001年,RSS技术标准的发展工作被Userland Software公司的戴夫 温那(Dave Winer)所接手。陆续发布了0.9x的系列版本。当W3C小组发布RSS 1.0后,Dave W
- html表格和表单基础
百合不是茶
html表格表单meta锚点
第一次用html来写东西,感觉压力山大,每次看见别人发的都是比较牛逼的 再看看自己什么都还不会,
html是一种标记语言,其实很简单都是固定的格式
_----------------------------------------表格和表单
表格是html的重要组成部分,表格用在body里面的
主要用法如下;
<table>
&
- ibatis如何传入完整的sql语句
bijian1013
javasqlibatis
ibatis如何传入完整的sql语句?进一步说,String str ="select * from test_table",我想把str传入ibatis中执行,是传递整条sql语句。
解决办法:
<
- 精通Oracle10编程SQL(14)开发动态SQL
bijian1013
oracle数据库plsql
/*
*开发动态SQL
*/
--使用EXECUTE IMMEDIATE处理DDL操作
CREATE OR REPLACE PROCEDURE drop_table(table_name varchar2)
is
sql_statement varchar2(100);
begin
sql_statement:='DROP TABLE '||table_name;
- 【Linux命令】Linux工作中常用命令
bit1129
linux命令
不断的总结工作中常用的Linux命令
1.查看端口被哪个进程占用
通过这个命令可以得到占用8085端口的进程号,然后通过ps -ef|grep 进程号得到进程的详细信息
netstat -anp | grep 8085
察看进程ID对应的进程占用的端口号
netstat -anp | grep 进程ID
&
- 优秀网站和文档收集
白糖_
网站
集成 Flex, Spring, Hibernate 构建应用程序
性能测试工具-JMeter
Hmtl5-IOCN网站
Oracle精简版教程网站
鸟哥的linux私房菜
Jetty中文文档
50个jquery必备代码片段
swfobject.js检测flash版本号工具
- angular.extend
boyitech
AngularJSangular.extendAngularJS API
angular.extend 复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制. 使用方法: angular.extend(dst, src); 参数:
- java-谷歌面试题-设计方便提取中数的数据结构
bylijinnan
java
网上找了一下这道题的解答,但都是提供思路,没有提供具体实现。其中使用大小堆这个思路看似简单,但实现起来要考虑很多。
以下分别用排序数组和大小堆来实现。
使用大小堆:
import java.util.Arrays;
public class MedianInHeap {
/**
* 题目:设计方便提取中数的数据结构
* 设计一个数据结构,其中包含两个函数,1.插
- ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本
Chen.H
ajaxFileUploadie6ie7ie8ie9
jQuery.extend({
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
s.error.call( s.context || s, xhr, status, e );
}
- [机器人制造原则]机器人的电池和存储器必须可以替换
comsci
制造
机器人的身体随时随地可能被外来力量所破坏,但是如果机器人的存储器和电池可以更换,那么这个机器人的思维和记忆力就可以保存下来,即使身体受到伤害,在把存储器取下来安装到一个新的身体上之后,原有的性格和能力都可以继续维持.....
另外,如果一
- Oracle Multitable INSERT 的用法
daizj
oracle
转载Oracle笔记-Multitable INSERT 的用法
http://blog.chinaunix.net/uid-8504518-id-3310531.html
一、Insert基础用法
语法:
Insert Into 表名 (字段1,字段2,字段3...)
Values (值1,
- 专访黑客历史学家George Dyson
datamachine
on
20世纪最具威力的两项发明——核弹和计算机出自同一时代、同一群年青人。可是,与大名鼎鼎的曼哈顿计划(第二次世界大战中美国原子弹研究计划)相 比,计算机的起源显得默默无闻。出身计算机世家的历史学家George Dyson在其新书《图灵大教堂》(Turing’s Cathedral)中讲述了阿兰·图灵、约翰·冯·诺依曼等一帮子天才小子创造计算机及预见计算机未来
- 小学6年级英语单词背诵第一课
dcj3sjt126com
englishword
always 总是
rice 水稻,米饭
before 在...之前
live 生活,居住
usual 通常的
early 早的
begin 开始
month 月份
year 年
last 最后的
east 东方的
high 高的
far 远的
window 窗户
world 世界
than 比...更
- 在线IT教育和在线IT高端教育
dcj3sjt126com
教育
codecademy
http://www.codecademy.com codeschool
https://www.codeschool.com teamtreehouse
http://teamtreehouse.com lynda
http://www.lynda.com/ Coursera
https://www.coursera.
- Struts2 xml校验框架所定义的校验文件
蕃薯耀
Struts2 xml校验Struts2 xml校验框架Struts2校验
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月11日 15:54:59 星期六
http://fa
- mac下安装rar和unrar命令
hanqunfeng
mac
1.下载:http://www.rarlab.com/download.htm 选择
RAR 5.21 for Mac OS X 2.解压下载后的文件 tar -zxvf rarosx-5.2.1.tar 3.cd rar sudo install -c -o $USER unrar /bin #输入当前用户登录密码 sudo install -c -o $USER rar
- 三种将list转换为map的方法
jackyrong
list
在本文中,介绍三种将list转换为map的方法:
1) 传统方法
假设有某个类如下
class Movie {
private Integer rank;
private String description;
public Movie(Integer rank, String des
- 年轻程序员需要学习的5大经验
lampcy
工作PHP程序员
在过去的7年半时间里,我带过的软件实习生超过一打,也看到过数以百计的学生和毕业生的档案。我发现很多事情他们都需要学习。或许你会说,我说的不就是某种特定的技术、算法、数学,或者其他特定形式的知识吗?没错,这的确是需要学习的,但却并不是最重要的事情。他们需要学习的最重要的东西是“自我规范”。这些规范就是:尽可能地写出最简洁的代码;如果代码后期会因为改动而变得凌乱不堪就得重构;尽量删除没用的代码,并添加
- 评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓
nannan408
先来看南方网的一则报道:
再正常不过的结婚、生子,对于29岁的郑畅来说,却是一个永远也无法实现的梦想。从2010年到2015年,从24岁到29岁,一张张新旧不一的诊断书记录了她病情的同时,也清晰地记下了她人生的悲哀。
粗暴手术让人发寒
2010年7月,在酒店做服务员的郑畅发现自己怀孕了,可男朋友却联系不上。在没有和家人商量的情况下,她决定堕胎。
12月5日,
- 使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件
Everyday都不同
jspinput回车键绑定clickenter
假设如题所示的事件为同一个,必须先把该js函数抽离出来,该函数定义了监听的处理:
function search() {
//监听函数略......
}
为input框绑定回车事件,当用户在文本框中输入搜索关键字时,按回车键,即可触发search():
//回车绑定
$(".search").keydown(fun
- EXT学习记录
tntxia
ext
1. 准备
(1) 官网:http://www.sencha.com/
里面有源代码和API文档下载。
EXT的域名已经从www.extjs.com改成了www.sencha.com ,但extjs这个域名会自动转到sencha上。
(2)帮助文档:
想要查看EXT的官方文档的话,可以去这里h
- mybatis3的mapper文件报Referenced file contains errors
xingguangsixian
mybatis
最近使用mybatis.3.1.0时无意中碰到一个问题:
The errors below were detected when validating the file "mybatis-3-mapper.dtd" via the file "account-mapper.xml". In most cases these errors can be d