上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 23 下一页
摘要: 转换成xml可以看看网上的大神的杰作.下面要解决一个问题,就是自己APP里面创建的数据和数据如何提供给其他APP使用,需要靠一个什么工具盒介质呢?Android里面有四大组件,其中一种ContentProvider组件就能够做到,要ContentProvider组件提供的数据,那么就需要将ContentProvider在配置文件(AndroidManifest.xml)显示暴露出来.当然,Android的四大组件都需要在AndroidManifest.xml中注册,但是不一定暴露,要提供给其他APP使用,四大组件都需要设置暴露出来.这里要开发两个APP,一个APP提供ContentProvid 阅读全文
posted @ 2014-03-27 17:54 MMLoveMeMM 阅读(243) 评论(0) 推荐(0)
摘要: ViewPager常用于APP正式使用界面使用之前所加载的视图,相当于windows很多软件的splash,ViewPager一般放在APP启动之前或者APP中一个操作切换到两外一个操作之间的显示.平时微信APP均会使用.ViewPager是一种视窗类型的组件,所以它可以加载Layout,在这个Layout中又可以添加其他UI件,所以ViewPager可以相当于是一个大型容器,下面给出使用的步骤: : 首先新建一个Android工程,然后在主类的布局xml文件中添加ViewPager如下: : 在主类中定义一个ViewPager对象:private ViewPager ... 阅读全文
posted @ 2014-03-27 15:33 MMLoveMeMM 阅读(333) 评论(1) 推荐(0)
摘要: 想来想去又坑爹了,数据保存到json中去了,如何拿出来使用了,所以这一篇又要实现和上一篇相反的过程,将Json转换成java各种对象:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Py 阅读全文
posted @ 2014-03-27 01:36 MMLoveMeMM 阅读(258) 评论(0) 推荐(0)
摘要: 坑爹了吧,上一篇中读取所有的数据,本想说转换成json的,结果没去做了,这里还是添加,对于将来自己的于心不忍啊,所以补充一片转json的:使用json-lib进行Java和JSON之间的转换:1. json-lib是一个java类库,提供将Java对象,包括beans, maps, collections, java arrays and XML等转换成JSON,或者反向转换的功能。2. json-lib 主页 :http://json-lib.sourceforge.net/3.执行环境 需要以下类库支持jakarta commons-lang 2.5jakarta commons-bean 阅读全文
posted @ 2014-03-27 01:27 MMLoveMeMM 阅读(212) 评论(0) 推荐(0)
摘要: 如果查询出来的数据需要转换成json和xml,那怎么办呢?可以这样,先把数据和对应数据名放到Map中,比如HashMap:第一个放字段名,第二个放数据,不是String的,先转换成String:HashMap map=new HashMap();具体步骤如下:实现查询:如果要实现插入,那么先把数据全部放到HashMap中,然后取出放到ContentValues对象中:查询如下:返回一个HashMap对象:public HashMap querymap(/* query condition, eg : id */int id) { HashMap map = new HashMap... 阅读全文
posted @ 2014-03-27 01:21 MMLoveMeMM 阅读(157) 评论(0) 推荐(0)
摘要: 根据上一篇文章,要注意一个操作,就是查询当然直接返回游标Cursor也行,但是如果我一定要返回一条数据,而不是Cursor,如果返回一条数据,我在应用层就可以直接使用数据了,而不需要再去while查找出一条适合的数据条目,那么就可以这样:步骤如下:在上一篇的基础上: : 首先新建一个对象类:public class DataUser { int id; String user; String nickname; String password; } : 更新上篇中的类SQLHelper,添加查询方法:public DataUser querys(/*query c... 阅读全文
posted @ 2014-03-27 00:49 MMLoveMeMM 阅读(204) 评论(0) 推荐(0)
摘要: Android 开发中实际使用sql语句不多,那么android就提供了一个"叉叉"helper的类:SQLiteOpenHelper,但是开发人员是通过继承这个类来实现对数据进行操作的.步骤如下: : 定义一个管理数据管理类:public class SQLManager { public static final String SQ_LITE_DATABASE_TABLE="tsql"; public static final String SQL_TABLE_CREATE="create table "+SQ_LITE_DATA 阅读全文
posted @ 2014-03-27 00:26 MMLoveMeMM 阅读(325) 评论(0) 推荐(0)
摘要: 一直想写一个android数据操作的系列笔记,由于事情TMD的多,来不及搞这些飞机.Android系统提供了多种储存数据的方式,其中这里首先介绍Sqlite.Sqlite和在windows以及linux系统安装的mysql有几分相像.如果直接执行sql语句,那么基本操作的语法差不多.基本执行的步骤如下: 创建以及打开数据库:private SQLiteDatabase db;db = SQLiteDatabase.openOrCreateDatabase(getFilesDir().toString() + "/user.db", null); 创建并且打... 阅读全文
posted @ 2014-03-26 23:30 MMLoveMeMM 阅读(248) 评论(0) 推荐(0)
摘要: 前言: 工作中,需要开启一个线程大量的查询某个数据库值发送了变化,导致的开销很大,后来在老大的指点下,利用了 ContentObserver完美的解决了该问题,感到很兴奋,做完之后自己也对ContentObserver做下总结。 ContentObserver——内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于 数据库技术中的触发器(Trigger),当ContentObserver所观察的Uri发生变化时,便会触发它。触发器分为表触发器、行触发器, 相应地ContentObserver也分为“表“ContentObserver、“行”Content. 阅读全文
posted @ 2014-03-25 19:13 MMLoveMeMM 阅读(326) 评论(0) 推荐(0)
摘要: 如果其他android APP要访问我开发的APP中保存的数据,那么我将如何提供数据接口给其他APP使用了,根据上一篇文章,我需要提供一张名片给其他APP.需要依靠什么东西印出这样一张名片了,Android中四大组件中的ContentProvider提供了帮助,Android四大组件在使用过程中都需要在AndroidManifest.xml中声明,那么这个URI这个名片就印在这个声明中:在AndroidMainfest.xml中申明,ContentProvider采用了authorities(主机名/域名)对它进行唯一标识,你可以把ContentProvider看作是一个网站: 如果... 阅读全文
posted @ 2014-03-25 19:11 MMLoveMeMM 阅读(222) 评论(0) 推荐(0)
摘要: 一个android里面的应用很少不涉及数据库,直接操作自己开发的应用的数据库不是什么难事,因为数据库就是自己开发的,数据库位置,数据库名,表名都是自己开发的,所以有了这么多信息,借助SQLiteOpenHelper进行操作就是了.现在的问题来了,如果想使用其他APP里面的数据呢,比如短信息或者系统setting里面的数据呢,数据库不是自己开发的,怎么搞?比如:如果要操作其他应用的APP,仍然需要对应app的数据库名和表名才能进行操作,这个时候URI这个对象就应运而生了,个人理解,另外一个APP就需要提供一个公共的URI以方便其他APP使用,这个URI就相当于是一张名片,然后发给需要的人.我们通 阅读全文
posted @ 2014-03-25 18:53 MMLoveMeMM 阅读(665) 评论(0) 推荐(0)
摘要: Google 库连接 : https://code.google.com/p/csipsimple/wiki/HowToBuild对应虚拟机下载地址:https://docs.google.com/file/d/0ByFooYVveHXdYVV6eVhaUElWaGM/edit?pli=1下面是一个网友的经验介绍.教你如何在Ubuntu12下编译csipsimple教你如何在虚拟机Ubuntu下编译csipsimple转载请注明出处:http://blog.csdn.net/jingyuansuifeng/article/details/8120523首先是官方文档:http://code.g 阅读全文
posted @ 2014-03-25 18:13 MMLoveMeMM 阅读(769) 评论(0) 推荐(0)
摘要: 转:http://blog.csdn.net/yuanrongxi775/archive/2006/03/02/613860.aspx在VOIP通信中,影响语音质量的因素比较多,归类起来就以下几个大的因素:1、网络因素,网络一般体现在网络的延迟、抖动、丢包。延迟一般是有语音的编解码速度、JitterBuffer延迟、TCP/IP协议栈处理速 度、中间路由器路由延迟等引起的,在这些因素中,最重要的是JitterBuffer延迟和中间路由器路由延迟。解决中间路由器的延迟必须是通过中间网络 的选取来解决,类似SKYPE的SN、QQ的服务器协调路由的解决方案,其实就是找到最佳语音路由路径。抖动是有中间 阅读全文
posted @ 2014-03-25 17:56 MMLoveMeMM 阅读(336) 评论(0) 推荐(0)
摘要: 网上找的资料,记一下。Java数字的格式化:doublepi=3.1415927;//pi//取一位整数System.out.println(newDecimalFormat("0").format(pi));//3//取一位整数和两位小数System.out.println(newDecimalFormat("0.00").format(pi));//3.14//取两位整数和三位小数,整数不足部分以0填补。System.out.println(newDecimalFormat("00.000").format(pi));//03.1 阅读全文
posted @ 2014-03-25 17:55 MMLoveMeMM 阅读(484) 评论(0) 推荐(0)
摘要: Lame主要的作用是用于wav转换成mp3这个demo是一个课程上的案例,还是比较容易使用,步骤如下: : 首先下载 lame-3.99.5.tar.gz源文件; :它是在linux压缩的,但是不会影响windows下解压使用,由于寡人的linux是Android 4.4的,目前暂时没有使用的真机,解压lame-3.99.5.tar.gz后,大致看了一下,source code不仅给出了lame的源文件还给出了在各种系统下使用的demo实例程序,lame源文件在libmp3lame文件夹下,其他的文件夹都是使用lame的demo程序,有在debian下的,有mac下的,也有windows下vc 阅读全文
posted @ 2014-03-25 01:31 MMLoveMeMM 阅读(541) 评论(0) 推荐(0)
摘要: Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过acquire()获取一个许可,如果没有就等待,而 release()释放一个许可。比如在Windows下可以设置共享文件的最大客户端访问个数。Semaphore实现的功能就类似厕所有5个坑,假如有10个人要上厕所,那么同时只能有多少个人去上厕所呢?同时只能有5个人能够占用,当5个人中 的任何一个人让开后,其中等待的另外5个人中又有一个人可以占用了。另外等待的5个人中 阅读全文
posted @ 2014-03-24 01:43 MMLoveMeMM 阅读(141) 评论(0) 推荐(0)
摘要: 在JAVA中,是没有类似于PV操作、进程互斥等相关的方法的。JAVA的进程同步是通过synchronized()来实现的,需要说明的是,JAVA的synchronized()方法类似于操作系统概念中的互斥内存块,在JAVA中的Object类型中,都是带有一个内存锁的,在有线程获取该内存锁后,其它线程无法访问该内存,从而实现JAVA中简单的同步、互斥操作。明白这个原理,就能理解为什么synchronized(this)与synchronized(static XXX)的区别了,synchronized就是针对内存区块申请内存锁,this关键字代表类的一个对象,所以其内存锁是针对相同对象的互斥操作 阅读全文
posted @ 2014-03-24 01:38 MMLoveMeMM 阅读(263) 评论(0) 推荐(0)
摘要: 由于大部分开发人员均在linux环境下进行NDK开发,windows 下的cgywin工具还是有一定局限,特别是windows文本格式和linux有差异,所以从网上下载下来的程序,很难在windows下运行成功,至少会造成很大麻烦,很多错误无从查找,而且网上很多资源也是在linux下编译开发的,在w... 阅读全文
posted @ 2014-03-23 22:46 MMLoveMeMM 阅读(991) 评论(0) 推荐(0)
摘要: 分享:目前包括:Android开源项目第一篇——个性化控件(View)篇 包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar、其他 Android开源项目第二篇——工具库篇 包括依赖注入、图片缓存、网络相关、数据库ORM工具包、Android公共库、高版本向低版本兼容库、多媒体、事件总线、传感器、安全、其他 Android开源项目第三篇——优秀项目篇 比较有意思的完整的Android项目 Android开源项目第四篇——开发及测试工具篇 包括开发效率工具、开发自测相关、测试工具、开发及编译环境、其 阅读全文
posted @ 2014-03-22 21:41 MMLoveMeMM 阅读(390) 评论(0) 推荐(0)
摘要: 问题: 在使用Actionbar时,默认在左上角是会有一个跟软件发布时的LOGO一样的图标,在大多数情况下按照默认图标进行显示已经很好,既使得软件整体统一,也方便省事。但有些情况下,还是希望不同的界面左上角的图标是不同的,或不想使用默认的LOGO,比如LOGO是有底色,放在Actionbar上不好看……解决办法: 在配置文件Manifest中增加android:logo="@drawable/logo_top"属性,如果是想给整个程序添加统一的自定义图标,则在application标签下增加该属性;如果是想针对不同的activity添加不同的左上角图标,则在各自的activ 阅读全文
posted @ 2014-03-22 10:22 MMLoveMeMM 阅读(7278) 评论(0) 推荐(0)
摘要: 下面是一个在Android中使用定时器Timer和TimerTask的启动,停止,暂停,继续等操作的demo。需要注意的问题主要有两点:1、Timer和TimerTask在调用cancel()取消后不能再执行 schedule语句,否则提示出错,提示如下:Demo源码如下:TimerDemoActivity.javapackage com.snowdream.timerdemo;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.os.Bundle;import 阅读全文
posted @ 2014-03-22 01:11 MMLoveMeMM 阅读(7159) 评论(0) 推荐(0)
摘要: 这个案例是用来实现Java层定时调用JNI层的方法,通过该方法返回来的随机数进行判断,不断调整UI显示效果,可以举一反三. : 新建一个android工程:大致思路是这样的:定义一个Timer定时器,这个定时器可以实现每个多久就开始调用一次任务(TimerTask):Timer :Timer timer=new Timer();timer.schedule(task, 500,1000);第二个参数是到时间时,再延时500ms开始执行task,第三个参数即是每隔1000ms执行一次task任务.TimerTask :TimerTask task=new TimerTask(){ ... 阅读全文
posted @ 2014-03-22 01:01 MMLoveMeMM 阅读(708) 评论(0) 推荐(0)
摘要: 今天把前面几天做的那个demo5重新做了一下,TMD,不敢粗心大意.我按照其他资料上介绍的,做了一个测试C语言回调java的操作: : 在demo5的基础上新建一个dataprovider.java类,calladd在C语言层调用add函数,然后返回:package com.example.hellojnidemo5;public class dataprovider { public native int calladd(); public int add(int x,int y){ return x+y; }} : 进到./bin/classes目录... 阅读全文
posted @ 2014-03-21 23:09 MMLoveMeMM 阅读(233) 评论(0) 推荐(0)
摘要: 一、Eclipse上安装GIT插件EGit Eclipse的版本eclipse-java-helios-SR2-win32.zip(在Eclipse3.3版本找不到对应的 EGit插件,无法安装) EGit插件地址:http://download.eclipse.org/egit/updatesOK,随后连续下一步默认安装就可以,安装后进行重启Eclipse二、在Eclipse中配置EGit准备工作:需要在https://github.com 上注册账号Preferences > Team > Git > Configuration这里的user.name 是你在https: 阅读全文
posted @ 2014-03-21 01:25 MMLoveMeMM 阅读(213) 评论(0) 推荐(0)
摘要: SVN的功能再多,如果不能有效的和IDE无缝结合,那么它的功能也会大打折扣。所以,我想说说svn是如何和eclipse配合使用的。①到Tigris的官方网站上下载要用到的插件subeclipse,地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240&expandFolder=2240&folderID=2240②这里,我下载的是site-1.8.4.zip,如下图示:③下载完成后,就安装这个插件;打开eclipse,点击Help---Install New Sofeware,如下图所示 阅读全文
posted @ 2014-03-21 01:22 MMLoveMeMM 阅读(278) 评论(0) 推荐(0)
摘要: startActivity(intent):只是从当前活动界面跳转到另外一个界面,两个界面中不再有联系。startActiivityForResult(requestcode,intnet):可以经当前活动界面认为是一个父窗体,要跳转的界面为子窗体,当子窗体关闭时,父窗体会执行onActivityResult()方法,并可以获取子窗体的返回值.详细代码:package net.lazyer.ActivityTest;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import 阅读全文
posted @ 2014-03-21 01:10 MMLoveMeMM 阅读(439) 评论(0) 推荐(0)
摘要: 一般情况下,APP之间调用对方的界面基本上只限于Activity,以及其他Activity的子类间,通过在AndroidManifest.xml中指定新建两个android工程fragmentdemo1,fragmentdemo2;在fragmentdemo1工程中新建两个继承Fragment的类.在fragmentdemo2添加一个按钮.这个按钮的作用就是调用fragmentdemo1工程中Fragment(实际上还是启动Activity); : fragmentdemo1工程source :MainActivity.javapackage com.example.fragmentdemo1 阅读全文
posted @ 2014-03-21 00:23 MMLoveMeMM 阅读(865) 评论(0) 推荐(0)
摘要: Android 提供的两个API同来实现录音,在录取的pcm数据签上头部信息.两个类的主要区别与特性:AudioRecord:主要实现音频的边录边播(AudioRecord+AudioTrack),已经音频的实时处理优点:语音的实时处理,可以用代码来实现音频的封装缺点:输出的是PCM数据,如果保存为音频文件是不能被音频播放器播放的,必须先写代码实现数据编码以及压缩示例:AudioRecord类录音实现WAV 格式封装,录音20s 文件大小大概为3.5MMeadiaRecord:已经继承了录音编码压缩等,支持少量的录音音频格式,aac(API16 SDK==4.1.6)。amr .3gp优点:大 阅读全文
posted @ 2014-03-20 00:56 MMLoveMeMM 阅读(1082) 评论(0) 推荐(0)
摘要: 下面是一个网上一个大神写的,在公司测过了,还不错.还可以写一个构造函数:initReader(InputStream is){fis = new FileInputStream(is); bis = new BufferedInputStream(fis); }eg:call it as following :InputStream is=Activity.getResource().openRawResource();InitReader(is);openRawResource(r.raw.wavname);上面漏了资源.// filename: WaveFileReader.java/.. 阅读全文
posted @ 2014-03-20 00:49 MMLoveMeMM 阅读(1700) 评论(0) 推荐(0)
摘要: 说几句俗话:对应Activity,Service等四大组件在AndroidManifest.xml中设置Action的值,相当于对外,包括对其他app暴露自己是可以被外面调用,为其他组件(或者app)服务的,其他组件(或app)使用:Intent intent=new Intent();intent.setAction(Action字符窜[intent.name]);startActivity(intent);其中Category约束条件为DEFAULT,只要其他匹配IntentFilter中的action相符,即通过检查,被暴露的组件或者APP机会启动并进行为启动者提供服务.如果加了Cate 阅读全文
posted @ 2014-03-19 23:56 MMLoveMeMM 阅读(893) 评论(0) 推荐(0)
摘要: Google API给出详细用法:http://developer.android.com/reference/android/os/AsyncTask.html在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则: 1. 不要阻塞UI线程 2. 确保只在UI线程中访问Android UI工具包 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,用户接触屏幕的事件以及屏幕绘图事件,并把相关. 阅读全文
posted @ 2014-03-19 01:08 MMLoveMeMM 阅读(191) 评论(0) 推荐(0)
摘要: AudioTrack可以读取网络上面的,这个需要后面去添加,涉及的东西太多了,现在看看AudioRecord,查看API : http://developer.android.com/reference/android/media/AudioRecord.html : AudioRecord构造函数:public AudioRecord (int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes) 第一个参数: audioSource : 音源,一般是设备的mi. 阅读全文
posted @ 2014-03-19 01:04 MMLoveMeMM 阅读(356) 评论(0) 推荐(0)
摘要: 刚才纠正了一个jni第七节一个错误,昨晚一个晚上没睡着啊.为什么要看看AudioTrack和AudioRecord,没有为什么,因为不看看,会死人的.AudioTrack API :http://developer.android.com/reference/android/media/AudioTrack.html : AudioTrack构造函数有两种:第二种我很少用.下面第一种:public AudioTrack (int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSize. 阅读全文
posted @ 2014-03-19 00:14 MMLoveMeMM 阅读(416) 评论(0) 推荐(0)
摘要: ReentrantLock是jdk5引入的新的锁机制,它与内部锁(synchronize) 相同的并发性和内存语义,比如可重入加锁语义。在中等或者更高负荷下,ReentrantLock有更好的性能,并且拥有可轮询和可定时的请求锁等高级功能。这个程序简单对比了ReentrantLock公平锁、ReentrantLock非公平锁以及内部锁的性能,从结果上看,非公平的ReentrantLock表现最好。内部锁也仅仅是实现统计意义上的公平,结果也比公平的ReentrantLock好上很多。这个程序仅仅是计数,启动N个线程,对同一个Counter进行递增,显然,这个递增操作需要同步以保证原子性,采用不同 阅读全文
posted @ 2014-03-18 16:02 MMLoveMeMM 阅读(1282) 评论(0) 推荐(0)
摘要: 记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。 三、尤其关键的是,当一个线程访问object的一个synchronized(this 阅读全文
posted @ 2014-03-18 15:55 MMLoveMeMM 阅读(355) 评论(0) 推荐(0)
摘要: 前言 在做web或者其他项目中,JSON与XML格式的数据是大家经常会碰见的2种。在与各种平台做数据对接的时候,JSON与XML格式也是基本的数据传递格式,本文主要简单的介绍JSON/XML文件的读写操作,以及与Bean之间的转换。示例代码都是经过Demo测试的,当然也会把代码上传到GitHub.需要的朋友可以看看。准备工作 我这里对XML与JSON主要依赖以下2个开源库,当然像针对xml和JSON解析的开源库非常的多,下面这2个感觉相对用起来比较简单。需要注意的是如果缺少下面jar文件中的一个,可能就会出现ClassNotFound 异常,如果发现使用的方法在当前库中找不到,则可能是库版.. 阅读全文
posted @ 2014-03-18 00:53 MMLoveMeMM 阅读(896) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2014-03-18 00:42 MMLoveMeMM 阅读(20) 评论(0) 推荐(0)
摘要: 我们设置 Jni 调用c的接口,没有办法进行调试,我们可以设置输出log信息来查看,目前有2种方法:1. Android 自带的Log类.在.c的头文件中加入如下代码#include #define LOG_TAG "cqEmbed"#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)在需要调用的函数中输入信息就可以.例如/* * Class: com_foxit_JniAdapter * Method: DestoryNativeLib * Signature: ()V */ 阅读全文
posted @ 2014-03-18 00:40 MMLoveMeMM 阅读(1210) 评论(0) 推荐(0)
摘要: Java Nativie Interface(JNI,中文名称Java本地接口)标准时Java平台的一部分,它允许Java代码和其他语言写得代码进行交互。JNI是本地编程接口,它使得Java虚拟机(VM)内部运行的Java代码能够用其他编程语言(如C、C++和汇编语言)编写的应用程序和库进行交互操作。JNI的主要用途是为了对硬件进行访问以及追求高效率或可重用C/C++库。Android系统中采用了JNI的方式来调用C/C++方法,然而,在Android系统里进一步加强了Java JNI的使用,使JNI的调用更具有效率。因此,总的来说,Android系统里可以采用两种方式来使用JNI。第一种:J 阅读全文
posted @ 2014-03-17 19:02 MMLoveMeMM 阅读(359) 评论(0) 推荐(0)
摘要: Table Of ContentsJava Collections Introduction. 2Overview of Interfaces. 2Iterable. 4Collection. 4Collection子类型... 4Adding and Removing Elements. 5Checking if a Collection Contains a Certain Element. 5Collection Size. 5Iterating a Collection. 5Generic Collections. 6List. 6List Implementations. 6Addi 阅读全文
posted @ 2014-03-17 18:32 MMLoveMeMM 阅读(789) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 23 下一页