Welcome 微信登录

首页 / 移动开发 / Android

Android提高之Activity+Intent用法示例

Android提高之Activity+Intent用法示例

一般来说。熟悉Android程序设计的人都知道Android有三个基础组件Activity,Service和BroadcastReceiver,他们都是依赖Intent来启动。本文所要介绍的是Activity的生命周期以及针对Activity的Intent使用。之前的例子一直都是使用Activity,在一个Layout XML与一个Activity捆绑的情况下可以视为一个Form,多个Layout XML与一个Activity捆绑的话那就是个Applica...
Android提高之BroadcastReceiver实例详解

Android提高之BroadcastReceiver实例详解

前面几篇文章分别讨论了Activity和Service,本文就来讨论BroastcastReceiver,Broastcast是应用程序间通信的手段。BroastcastReceiver也是跟Intent紧密相连的,动态/静态注册了BroastcastReceiver之后,使用sendBroadcast把Intent发送之后,系统会自动把符合条件的BroastcastReceiver启动,这和嵌入式系统的中断类似。本文所示实例代码主要演示了如何静态/动态注...
Android提高之XML解析与生成实例详解

Android提高之XML解析与生成实例详解

本文实例讲述了使用SAX来解析XML。通常来说在Android里面可以使用SAX和DOM,DOM需要把整个XML文件读入内存再解析,比较消耗内存,而SAX是基于事件驱动的处理方式,可以在各节点触发回调函数,不过SAX适合节点结构简单的XML文档,复杂的XML文档在后期的节点深度处理会有点麻烦。本文要解析的test.xml文件如下:<?xml version="1.0" encoding="utf-8"?> <test>...
Android提高之SQLite分页读取实现方法

Android提高之SQLite分页读取实现方法

一般来说,Android自身就包含了常用于嵌入式系统的SQLite,这样就免去了开发者自己移植安装的功夫。SQLite 支持多数SQL92标准,很多常用的SQL命令都能在SQLite上面使用,除此之外Android还提供了一系列自定义的方法去简化对SQLite数据库的操作。不过有跨平台需求的程序还是建议使用标准的SQL语句,毕竟这样容易在多个平台之间进行移植。先来贴出本文程序运行的结果图:本文实例程序主要讲解了SQLite的基本用法,如:创建数据库,使用S...
Android提高之SQLite分页表格实现方法

Android提高之SQLite分页表格实现方法

继前一篇文章讲到Android上的SQLite分页读取,其功能只是用文本框显示数据而已。本文就讲得更加深入些,实现并封装一个SQL分页表格控件,不仅支持分页还是以表格的形式展示数据。先来看看本文程序运行的动画如下图所示:这个SQL分页表格控件主要分为“表格区”和“分页栏”这两部分,这两部分都是基于GridView实现的。网上介绍Android上实现表格的DEMO一般都用ListView。ListView与GridView对比,ListView最大的优势是格...
Android提高之AudioRecord实现助听器的方法

Android提高之AudioRecord实现助听器的方法

通常来说,在进行Android项目开发的时候可以通过MediaRecorder和AudioRecord这两个工具来实现录音的功能,MediaRecorder直接把麦克风的数据存到文件,并且能够直接进行编码(如AMR,MP3等),而AudioRecord则是读取麦克风的音频流。本文使用AudioRecord读取音频流,使用AudioTrack播放音频流,通过“边读边播放”以及增大音量的方式来实现一个简单的助听器程序。此处需要注意:由于目前的Android模拟...
Android提高之模拟信号示波器的实现

Android提高之模拟信号示波器的实现

前面简单地介绍了Android程序开发中AudioRecord和AudioTrack的使用,这次再结合SurfaceView实现一个Android版的手机模拟信号示波器。最近物联网炒得很火,作为手机软件开发者,如何在不修改手机硬件电路的前提下实现与第三方传感器结合呢?麦克风就是一个很好的ADC接口,通过麦克风与第三方传感器结合,再在软件里对模拟信号做相应的处理,就可以提供更丰富的传感化应用。先来看看本文程序运行的效果图(屏幕录像截图的速度较慢,真机实际运行...
Android提高之蓝牙传感应用实例

Android提高之蓝牙传感应用实例

前面文章介绍了Android利用麦克风采集并显示模拟信号的实现方法,这种采集手段适用于无IO控制、单纯读取信号的情况。如果传感器本身需要包含控制电路(例如采集血氧信号需要红外和红外线交替发射),那么传感器本身就需要带一片主控IC,片内采集并输出数字信号了。Android手机如何在不改硬件电路的前提下与这类数字传感器交互呢?可选的通信方式就有USB和蓝牙,两种方式各有好处:USB方式可以给传感器供电,蓝牙方式要自备电源;USB接口标准不一,蓝牙普遍支持SPP...
Android提高之蓝牙隐藏API探秘

Android提高之蓝牙隐藏API探秘

前面文章讲解了Android的蓝牙基本用法,本文讲得深入些,探讨下蓝牙方面的隐藏API。用过Android系统设置(Setting)的人都知道蓝牙搜索之后可以建立配对和解除配对,但是这两项功能的函数没有在SDK中给出,那么如何去使用这两项功能呢?本文利用JAVA的反射机制去调用这两项功能对应的函数:createBond和removeBond,具体的发掘和实现步骤如下:1.使用Git工具下载platform/packages/apps/Settings.gi...
Android提高之TelephonyManager功能探秘

Android提高之TelephonyManager功能探秘

前面文章介绍了如何使用JAVA的反射机制来调用蓝牙的隐藏API,本文继续来练习JAVA的反射机制,探秘TelephonyManager在Framework里包含却在SDK隐藏的几项功能。先来看一下本文程序运行的效果图,如下所示:本文程序演示了以下功能:1.所有来电自动接听;2.所有来电自动挂断;3.开启/关闭Radio;4.开启/关闭数据连接(WAP or NET的连接)。调用TelephonyManager的隐藏API是先参考Framework的/bas...
Android提高之ListView实现自适应表格的方法

Android提高之ListView实现自适应表格的方法

前面有文章介绍了使用GridView实现表格的方法,本文就来说说如何用ListView实现自适应的表格。GridView比ListView更容易实现自适应的表格,但是GridView每个格单元的大小固定,而ListView实现的表格可以自定义每个格单元的大小,但因此实现自适应表格也会复杂些(主要由于格单元大小不一)。此外,GridView实现的表格可以定位在具体某个格单元,而ListView实现的表格则只能定位在表格行。因此还是那句老话:根据具体的使用环境...
Android提高之使用NDK把彩图转换灰度图的方法

Android提高之使用NDK把彩图转换灰度图的方法

一般而言在Android上使用JAVA实现彩图转换为灰度图,与J2ME上的实现方法类似,不过遇到频繁地转换或者是大图转换时,就必须使用NDK来提高速度了。本文主要通过JAVA和NDK这两种方式来分别实现彩图转换为灰度图,并给出速度的对比,供大家参考。先来简单地介绍一下Android的NDK使用步骤:以NDK r4为例,或许以后新版的NDK的使用方法略有不同。1、下载支持C++的android-ndk-r4-crystax,支持C++的话可玩性更强。2、下载...
Android提高之多级树形菜单的实现方法

Android提高之多级树形菜单的实现方法

一般来说在Android里要实现树形菜单,都是用ExpandableList(也有高手自己继承ListView或者LinearLayout来做),但是ExpandableList一般只能实现2级树形菜单。本文所述实例也依然使用ExpandableList,但是要实现的是3级树形菜单。本文程序运行效果图如下图所示:当用BaseExpandableListAdapter来实现二级树形菜单时,父项(getGroupView())和子项(getChildView(...
Android提高之自定义Menu(TabMenu)实现方法

Android提高之自定义Menu(TabMenu)实现方法

一般使用过UCWEB-Android版的人都应该对其特殊的menu有一定的印象,把menu做成Tab-Menu(支持分页的Menu),可以容纳比Android传统的menu更丰富的内容(Android的menu超过6项则缩略在[更多]里),本文参考网上的例子的基础上对例子进行简化以及封装,使其作为一个复合控件融入自己的framework。先来看看本文程序运行的效果如下图所示:TabMenu本身就是一个PopupWindow,PopupWindow上面放了两...
Android提高之MediaPlayer播放网络音频的实现方法

Android提高之MediaPlayer播放网络音频的实现方法

前面有文章曾经地介绍过MediaPlayer的基本用法,这里就更加深入地讲解MediaPlayer的在线播放功能。本文主要实现MediaPlayer在线播放音频的功能,由于在线视频播放比在线音频播放复杂,因此先介绍在线音频播放的实现,这样可以帮助大家逐步深入了解MediaPlayer的在线播放功能。先来看看本文程序运行的结果如下图所示:main.xml的源码如下:<?xml version="1.0" encoding="utf-8"?...
Android提高之MediaPlayer播放网络视频的实现方法

Android提高之MediaPlayer播放网络视频的实现方法

前面讲解了MediaPlayer播放网络音频,主要介绍了MediaPlayer关于网络音频的缓冲和进度条控制的方法,本文再来讲解一下MediaPlayer播放网络视频的方法。播放网络视频比播放网络音频需要多一个SurfaceView而已,在已经熟悉了MediaPlayer播放网络音频之后,相信大家对本文所述的播放网络视频也能很快地掌握。先来看看本文程序运行截图,如下所示:本文程序的视频来自http://daily3gp.com,大家可以替换程序中的视频链接...
Android提高之手游转电视游戏的模拟操控

Android提高之手游转电视游戏的模拟操控

目前智能电视终端(智能电视和智能电视盒子)已经越来越火,过去主打视频功能,如今的智能电视终端不仅会继续完善视频功能,还会加入电视游戏功能,同时这也赶上了“电视游戏机解禁”的时机。当今的大部分Android手游都能够在Android系统的电视终端上运行,其中有少数手游是原生支持手柄(例如MOGA手柄),这部分游戏可以作为电视游戏。但其他手游(射击,赛车,动作等游戏)若要在电视上玩,就需要修改操控模式,把触摸屏操控改为手柄实体键操控。本文主要讲解的是如何使用/...
Android提高之Android手机与BLE终端通信

Android提高之Android手机与BLE终端通信

最近穿戴设备发展得很火,把相关技术也带旺了,其中一项是BLE(Bluetooth Low Energy)。BLE是蓝牙4.0的核心Profile,主打功能是快速搜索,快速连接,超低功耗保持连接和传输数据,弱点是数据传输速率低,由于BLE的低功耗特点,因此普遍用于穿戴设备。Android 4.3才开始支持BLE API,所以请各位客官把本文代码运行在蓝牙4.0和Android 4.3及其以上的系统,另外本文所用的BLE终端是一个蓝牙4.0的串口蓝牙模块。注:...
<< 381 382 383 384 385 386 387 388 389 390 >>