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

首页 / 操作系统 / Linux

Android中JNI的使用之一:Java原生JNI的使用、javah指令的使用以及图解教材

Android中JNI的使用之一:Java原生JNI的使用、javah指令的使用以及图解教材

Java Nativie Interface(JNI,中文名称Java本地接口)标准时Java平台的一部分,它允许Java代码和其他语言写得代码进行交互。JNI是本地编程接口,它使得Java虚拟机(VM)内部运行的Java代码能够用其他编程语言(如C、C++和汇编语言)编写的应用程序和库进行交互操作。JNI的主要用途是为了对硬件进行访问以及追求高效率或可重用C/C++库。Android系统中采用了JNI的方式来调用C/C++方法,然而,在Android系统...
Android中Parcel的分析以及使用

Android中Parcel的分析以及使用

简单点来说:Parcel就是一个存放读取数据的容器, Android系统中的binder进程间通信(IPC)就使用了Parcel类来进行客户端与服务端数据的交互,而且AIDL的数据也是通过Parcel来交互的。在Java空间和C++都实现了Parcel,由于它在C/C++中,直接使用了内存来读取数据,因此,它更有效率。分析Binder机制中的客户端与服务器端进行实际操作ontransact()函数 :[java] //参数说明: //code:是请求的ID...
Android中Intent传递对象的两种方法(Serializable,Parcelable)

Android中Intent传递对象的两种方法(Serializable,Parcelable)

今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,为了让大家更容易理解我还是照常写了一个简单的Demo,大家就一步一步跟我来吧! 第一步:新建一个A...
Android 中的AIDL

Android 中的AIDL

今天要给大家分享的是Android aidl的使用。在Android中, 每个应用程序都可以有自己的进程. 在写UI应用的时候, 经常要用到Service. 在不同的进程中, 怎样传递对象呢? 显然, Java中不允许跨进程内存共享. 因此传递对象, 只能把对象拆分成操作系统能理解的简单形式, 以达到跨界对象访问的目的. 在J2EE中,采用RMI的方式, 可以通过序列化传递对象. 在Android中, 则采用AIDL的方式. 理论上AIDL可以传递Bund...
Android中Gallery和ImageSwitcher同步自动(滚动)播放图片库

Android中Gallery和ImageSwitcher同步自动(滚动)播放图片库

本文主要内容是如何让Gallery和ImageSwitcher控件能够同步自动播放图片集 ,看起来较难,然而,实现的方法非常简单, 请跟我慢慢来。总的来说,本文要实现的效果如下图:(截图效果不怎么好)本文是建立在以下两篇文章上的:1、Android入门教程之Gallery http://www.linuxidc.com/Linux/2012-02/53069.htm2、Android 控件之ImageSwitcher图片切换器 http://www.lin...
Android中获取应用程序(包)的信息-----PackageManager的使用(一)

Android中获取应用程序(包)的信息-----PackageManager的使用(一)

本节内容是如何获取Android系统中应用程序的信息,主要包括packagename、label、icon、占用大小等。具体分为两个部分,计划如下: 第一部分: 获取应用程序的packagename、label、icon等 ;第二部分: 获取应用程序的占用大小,包括:缓存大小(cachsize)、数据大小(datasize)。每部分都为您准备了简单丰富的实例,您一定不会错过。Android系统为我们提供了很多服务管理的类,包括ActivityManager...
Android中获取应用程序(包)的大小-----PackageManager的使用(二)

Android中获取应用程序(包)的大小-----PackageManager的使用(二)

通过第一部分<<Android中获取应用程序(包)的信息-----PackageManager的使用(一)>> http://www.linuxidc.com/Linux/2012-02/53072.htm的介绍,对PackageManager以及 AndroidManife.xml定义的节点信息类XXXInfo类都有了一定的认识。本部分的内容是如何获取安装包得大小,包括缓存大小(cachesize)、数据大小(datasize)、...
Andriod中绘(画)图----Canvas的使用详解

Andriod中绘(画)图----Canvas的使用详解

由于在网络上找到关于Canvas的使用都比较抽象,也许是我的逻辑思维不太好吧,总是感觉理解起来比较困难, 尤其是对save()和restore()方法的使用。本篇文章的内容就是对Canvas的使用进行一下总结,包括它的两种不同的使用 情节和它的一些方法进行一下说明。 1 Bitmap,可以来自资源/文件,也可以在程序中创建,实际上的功能相当于图片的存储空间;2 Canvas,紧密与Bitmap联系,把Bitmap比喻内容的话,那么Canvas就是提供了众多...
Android中MediaButtonReceiver广播监听器的机制分析

Android中MediaButtonReceiver广播监听器的机制分析

在Android中并没有定义MediaButtonReceive这个广播类,MediaButtonReceive只是作为一种通俗的命名方式来响应插入耳机后,点击耳机上的按钮(名称:MEDIA_BUTTON)接受该广播事件的类。所有该MEDIA_BUTTON的按下我们就简称为MEDIA_BUTTON广播吧。顾名思义:它显然是一个广播接收器类(BroadbcastReceiver),那么它就具备了BroadbcastReceiver类的使用方式,但是,因为它需...
Android中binderDied()以及“Unknown binder error code” 出现的原因说明

Android中binderDied()以及“Unknown binder error code” 出现的原因说明

Binder机制是Android系统进程间通信的核心机制,它很大而且很复杂,不过对它有一定程度的理解和掌握是真正接触 Android核心的必备。网上关于它的介绍很多,希望大家能耐着性子认真地学习Binder机制的实现。在此 写点关于Binder机制的,但无奈自己的理解程度还很肤浅,只好放弃了。自己从事的模块开发采用了Binder机制进行功能的开发,对Binder机制的不熟悉,导致了很多Bug的出现,可谓“一Bug未解,一Bug又起”,伤脑筋。今天对Bind...
Android中内容观察者的使用---- ContentObserver类详解

Android中内容观察者的使用---- ContentObserver类详解

前言: 工作中,需要开启一个线程大量的查询某个数据库值发送了变化,导致的开销很大,后来在老大的指点下,利用了 ContentObserver完美的解决了该问题,感到很兴奋,做完之后自己也对ContentObserver做下总结。 ContentObserver——内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于 数据库技术中的触发器(Trigger),当ContentObserver所观察的Uri发生变化时,便会触...
Android使用ContentObserver监听数据库变化

Android使用ContentObserver监听数据库变化

最近有个朋友问了我如何接受指定号码的短信,并且不让系统截取到通知用户。真好前端时间看天朝group,也有个朋友问了这个问题,而且通过 ContentObserver方式解决了。我这里就把我实现的代码贴出来,以便需要的朋友参考,最近Google-groups上不去,很是郁闷啊。Java 代码public class ScreenTest extends Activity {class SmsContent extends ContentObserver{pr...
Android 中管理短信

Android 中管理短信

为了看代码方便,一边在网上google资料,一边看Android java 源代码。偶然发现了一个类MmsSmsDatabaseHelper.java,原来android将所有的短信信息都存入了mmssms.db中。公开的SDK中没有这个类,不能直接使用。于是自己写了一个SQLiteOpenHelper,但是查询的时候发生SQL异常。看来不能为所欲为了,不过据网上资料介绍可以拷贝db文件来实现短信数据备份。既然每个db跟package名相关,建立了一个pa...
Android 自定义权限 permission

Android 自定义权限 permission

Android支持为应用程序自定义权限。如果希望自己的程序组件(如Activity,BroacastReceiver)等被任意用户随意启动执行。要使用自定义权限,首先在AndroidManifest.xml文件中声明它们,定义了权限之后,可以将它作为组件定义的一部分进行引用。下面列举一个demo,详述自定义权限的过程:首先创建一个工程CustomMadePermisson:主Activity(启动Activity):import android.app.A...
Android中如何修改系统时间(应用程序获得系统权限)

Android中如何修改系统时间(应用程序获得系统权限)

在 Android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用。 本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的...
Android中获取正在运行的服务:ActivityManager.RunningServiceInfo的使用

Android中获取正在运行的服务:ActivityManager.RunningServiceInfo的使用

关于PackageManager和ActivityManager的使用 ,自己也写了一些DEMO 了,基本上写的线路参考了Settings模块下的应用程序,大家如果真正的有所兴趣,建议大家看看源码,不过丑化说在前面,我自己也没怎么看过这方面的源码,只在需要的时候,才跑过去翻翻。今天,在耐着最后一点性子,写下了这篇博文,基本上完成了整个应用程序功能模块的介绍,大家也在此系列上慢慢拓展。ActivityManager.RunningServiceInfo类:封...
Java native interface(JNI)技术简单应用

Java native interface(JNI)技术简单应用

手上一个项目需要通过usb口去读取usbkey的信息,厂家提供的只有C/C++的接口,而主应用是java的,所以需要使用java去调用动态链接库,所以花了点时间研究了下JNI技术,jdk对JNI技术封装得很到位,使用起来非常简单,JNI技术最关键还是在于jni数据类型和本地数据类型的转换。先简单罗列下JNI的创建过程:首先需要写一个java类,然后定义需要使用C/C++去实现的方法(虽然说jni是java native interface,但是目前只支持c...
<< 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 >>