android开发教程 amp;笔记_图文
黑马程序员android开发笔记及源码
01、什么是3G
02、android系统简介
03、android背景介绍
04、android的framewor简介
05、两种虚拟机的比较
06、sdk的下载以及简介
07、创建android模拟器
08、ddms简介
09、platform-tools的简介及常见adb指令
10、android项目的目录结构
11、android下apk安装的过程
12、常见的adb指令介绍
13、创建模拟器遇到的常见错误
14、电话拨号器
15、点击事件的四种写法
16、短信发送器
17、相对布局&单位介绍
18、现形布局&布局的组合
19、表格布局&绝对布局
20、帧布局
21、测试相关概念
22、android下junit测试框架配置
23、logcat简介
24、保存文件到手机内存
25、android下文件访问的权限
26、保存文件到SD卡中
27、分析setting源代码获取SD卡大小
28、_sharePreference入门
29、xml文件的序列化
30、采用pull解析xml文件
31、采用断电调试的方法观察pull解析的的流程
32、android下创建一个sqllite数据库
33、sql语句实现数据库的增删改查
34、系统api实现数据库的增删改查&Sqlite3工具的使用
35、数据库的事物
36、listView入门
37、采用layoutInflater打气筒创建一个view对象
38、采用数据适配器ArryAdapter
39、常用数据适配器simpleAdapter
40、数据适配器总结
41、内容提供者简介
42、内容提供者的实现
43、短信的备份
android开发教程自定义数据源
Android自定义GridView/ListView数据源
在开发中,我们常常会遇到比较复杂的GridView/ListView的布局,重新实现BaseAdapter 不但能帮助我们实现我们想要的布局效果,并且在绑定大数据量时也不会感觉有卡壳现象。记得以前用一个ListView直接去绑定手机内的联系人Cursor(一百多号人),滑动的时候就会有卡的感觉。今天决定写个Demo是因为在项目中可能会要实现这样的一个效果:一个GridView中绑定4个ImageButton,有些按钮在特定的情况下是不可用的,也就是Enable=false;并且不同的按钮要拥有各自不同的点击事件。
实现第一点好办,添加一个标志位boolean bl来控制按钮的Enable状态,实现第二点就是将View.onClickListener添加到List列表中
1、MyAdapter.Java继承自BaseAdapter
Java代码
1publicclassMyAdapterextendsBaseAdapter{
2
3privateContextcontext;
4privateList>list;
5privateLayoutInflatermInflater;
6publicMyAdapter(Contextcontext,List>list){
7this.context=context;
8this.list=list;
9mInflater=LayoutInflater.from(this.context);
10}
11publicintgetCount(){
Android开发教程入门(软件安装流程)
Android开发教程
第一部分:安装SDK
这里介绍如何安装Android的SDK开发包和配置开发环境。如果你还没有下载SDK,点击下面的链接开始。
Download the Android SDK
系统和软件配置要求
要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下:
支持的开发环境
Eclipse
Eclipse 3.2,3.3(Europa)
Android开发工具插件(可选)
其他的开发环境或者IDE
JDK5.0或者JDK6.0(仅有JRE是不够的)
安装SDK
下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tool s加入到你的路径中
1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/tools的完整路径加入其中。如果没有找到设定PATH变量的行,你可以自己添加一行:
export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径>
2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,你可以创建一个.ba sh_profile文件。
3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。
Android手机开发教程
国内第一本基于Android 2.0的经典著作,5大专业社区联袂推荐,权威性毋庸置疑!本书内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏引擎设计、Android应用优化、OpenGL等高级知识,最重要的是还全面介绍了如何利用原生的C/C++(NDK)和Python、Lua等脚本语言(Android Scripting Environment)来开发Android应用;本书实战性强,书中的每个知识点都有配精心设计的示例,尤为值得一提的是,它还以迭代的方式重现了各种常用的Android应用和经典Android游戏的开发全过程,既可以以它们为范例进行实战演练,又可以将它们直接应用到实际开发中去。20世纪90年代初,裘伯君、鲍岳桥等IT行业的前辈“单打独斗”就能开发出脍炙人口的应用,如今做一个项目动辄就需要数百人的大规模团队和千万级的巨额开发费用,程序员真的没有了展露个人才华和创意的机会吗?我们正站在移动技术改变人类生活方式的十字路口,而移动互联网正是这一切的关键。Android以全新的开放平台和全球化的市场,为小团队提供了一个充分展现自己的舞台。本书为所有Android开发者提供了绝佳的参考,不可不读!—Android中文站(/)与已经出版的所有同类书相比,本书内容更全面,几乎涵盖了Android开发的所有方面;实战性更强,不仅各个知识点都有翔实的范例,而且还包含多个实用的完整案例;主题更新颖,Android 2.0中的各种最新特性一览无余……本书值得各种水平层次的Android应用开发者阅读,强烈推荐!—Android中文用户组随着3G技术的成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。在Google和Android手机联盟的共同推动下,Android在众多移动应用开发平台中脱颖而出。本书的出版对于广大Android应用开发者来说不啻是一种福音,它将为Android开发者社区注入强大的活力!—毕惠子 Android实验室(/)随着移动智能设备的普及,我国移动应用的需求即将迎来“井喷”,本书能让你轻松转型为Android开发者,助你笑傲移动应用开发之巅。极力推荐!—谷奥(/)这是一本参考手册,内容的完整性和系统性几乎无可挑剔,可作为广大Android开发者的案头必备书;这是一部权威指南,基础知识部分翔实而丰富
Android官方开发教程中文版(四)
Android官方开发教程中文版
管理Activity的生存周期
管理Activity的生存周期
当用户通过导航离开然后又返回你的App,App的Activity实例在它们的生存周期内在两个不同的状态之间转换。例如,Activity首次启动时成为系统的前台并接受用户的关注,在这个过程中,Android系统在你的Activity上调用一系列生命周期方法设置用户界面和其它组件。如果用户执行了一个启动另一个Activity或切换到其它App的动作,系统调用生命周期的其它方法把Activity移到后台(Activity不再可见,但实例和状态仍然完好无损)。
在生命周期的回调方法中,你可以定义当用户离开和重新进入Activity时,Activity的行为。例如,如果你正在创建一个流媒体视频播放器,当用户切换到其它App时,你可以暂停视频并中断网络连接。当用户返回时,你再重新连接网络并允许用户从暂停点恢复播放。
本课程解释了重要的生命周期回调方法,每个Activity实例接收和如何使用它们,使Activity执行用户期望的结果,并且当Activity不需要它们时,不会消耗系统资源。
启动Activity
不像其它编程范例由main()方法启动,Android系统在Activity中通过调用对应生命周期特定阶段的回调方法来启动代码。在启动Activity时有一系列的回调方法,销毁Activity时也有一系列的回调方法。
本节内容提供了大部分重要的生命周期方法的概览,并且展示了在创建Activity的新实例时如何处理首个生命周期的回调。
android binder学习 笔记(图文)
郝一二三笔记
framework\base\Media\MediaServer \Main_mediaserver.cpp
1.ProcessState:
framework\base\libs\binder\ProcessState.cpp
sp defaultServiceManager()
{
if (gDefaultServiceManager != NULL) return gDefaultServiceManager; //又是一个单例,设计模式中叫singleton
{
AutoMutex _l(gDefaultServiceManagerLock);
framework/base/include/binder/IInterface.h
class IServiceManager : public IInterface
{
public:
DECLARE_META_INTERFACE(ServiceManager);
virtual status_t ( const String16& name,
const sp& service) = 0;
};
#define DECLARE_META_INTERFACE(INTERFACE) \
static const android::String16 descriptor; \
static android::sp asInterface( \
const android::sp& obj); \
virtual const android::String16& getInterfaceDescriptor() const; \
Android开发教程之Frag...
Android开发教程之Frag...
本⽂实例讲述了Android开发教程之Fragment定义、创建与使⽤⽅法。分享给⼤家供⼤家参考,具体如下:
概述
Fragment是activity的界⾯中的⼀部分或⼀种⾏为。你可以把多个Fragment们组合到⼀个activity中来创建⼀个多⾯界⾯并且你可以在多个activity中重⽤⼀个Fragment。你可以把Fragment认为模块化的⼀段activity,它具有⾃⼰的⽣命周期,接收它⾃⼰的事件,并可以在activity运⾏时被添加或删除。
Fragment不能独⽴存在,它必须嵌⼊到activity中,⽽且Fragment的⽣命周期直接受所在的activity的影响。例如:当activity暂停时,它拥有的所有的Fragment们都暂停了,当activity销毁时,它拥有的所有Fragment们都被销毁。然⽽,当activity运⾏时(在onResume()之后,onPause()之前),你可以单独地操作每个Fragment,⽐如添加或删除它们。当你在执⾏上述针对Fragment的事务时,你可以将事务添加到⼀个棧中,这个栈被activity管理,栈中的每⼀条都是⼀个Fragment的⼀次事务。有了这个栈,就可以反向执⾏Fragment的事务,这样就可以在Fragment级⽀持“返回”键(向后导航)。
当向activity中添加⼀个Fragment时,它须置于ViewGroup控件中,并且需定义Fragment⾃⼰的界⾯。你可以在layoutxml⽂件中声明Fragment,元素为:<fragment>;也可以在代码中创建Fragment,然后把它加⼊到ViewGroup控件中。然
Android开发笔记之《远程控制(MQTTmosquitto)(ProtocalBuff。。。
Android开发笔记之《远程控制(MQTTmosquitto)(ProtocalBuff。。。
Android推送⽅案分析(MQTT/XMPP/GCM): /lib/view/open1410848945601.html
MQTT官⽹: /
: /caca/p/mqtt.html
OSChina grpc document : /grpc?t=56831
⾼⼿对MQTT的理解: /leeying/p/3791077.htm
⾼⼿对MQTT的经验之谈: /yongboy/archive/2015/01/11/422172.html
MQTT是IBM开发的⼀个即时通讯协议。MQTT是⾯向M2M和物联⽹的连接协议,采⽤轻量级发布和订阅消息传输机制。Mosquitto是⼀款实现了 MQTT v3.1协议的开源消息代理软件,提供轻量级的,⽀持发布/订阅的的消息推送模式,使设备对设备
若初次接触MQTT协议,可先理解以下概念:
【MQTT协议特点】——相⽐于RESTful架构的物联⽹系统,MQTT协议借助消息推送功能,可以更好地实现远程控制。
【MQTT协议⾓⾊】——在RESTful架构的物联⽹系统,包含两个⾓⾊客户端和服务器端,⽽在MQTT协议中包括发布者,代理器(服务器)和订阅者。
【MQTT协议消息】——MQTT中的消息可理解为发布者和订阅者交换的内容(负载),这些消息包含具体的内容,可以被订阅者使⽤。
【MQTT协议主题】——MQTT中的主题可理解为相同类型或相似类型的消息集合
默认会监听⼀下端⼝:
1883: MQTT, 不加密
Android学习笔记_SIM卡介绍
Android学习笔记_SIM卡介绍
一、判断SIM卡属于哪个移动运营商
1、第一种方法:获取手机的IMSI码,并判断是中国移动\中国联通\中国电信
TelephonyManager telManager = (TelephonyManager)
getSystemService(Context.TELEPHONY_SERVICE);
/**获取SIM卡的IMSI码
* SIM卡唯一标识:IMSI 国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,
* 储存在SIM卡中,可用于区别移动用户的有效信息。IMSI由MCC、MNC、MSIN 组成,其中MCC为移动国家号码,由3位数字组成,
* 唯一地识别移动客户所属的国家,我国为460;MNC为网络id,由2位数字组成,
* 用于识别移动客户所归属的移动网络,中国移动为00,中国联通为01,中国电信为03;MSIN为移动客户识别码,采用等长11位数字构成。
* 唯一地识别国内GSM移动通信网中移动客户。所以要区分是移动还是联通,只需取得SIM卡中的MNC字段即可
*/String imsi = telManager.getSubscriberId();
if(imsi!=null){
if(imsi.startsWith("46000") || imsi.startsWith("46002")){//因为移动网络编号46000下的IMSI已经用完,所以虚拟了一个46002编号,134/159号
Android开发笔记(一百四十一)读取PPT和PDF文件
Android开发笔记(一百四十一)读取
PPT和PDF文件
读取ppt文件
读取纯文本
HSLFSlideShow类就是poi中专门用于解析幻灯片的工具类,每张幻灯片又分别由单独的HSLFSlide类处理,幻灯片中的具体图文内容则由HSLFTextParagraph和HSLFTextRun进行分辨。
下面是使用poi解析ppt文件(2003格式)的效果图:
不同版本的poi库在解析ppt的代码略有区别,下面是使用poi15读取ppt的代码:[java] view plain copy
public static ArrayList readPPT(String path) {
ArrayList contentArray = new ArrayList();
try {
FileInputStream fis = new FileInputStream(new File(path));
HSLFSlideShow hslf = new HSLFSlideShow(fis);
List slides = hslf.getSlides();
for (int i = 0; i < slides.size(); i++) {
String content = "";
HSLFSlide item = slides.get(i);
// 读取一张幻灯片的内容(包括标题)
List> tps = item.getTextParagraphs();
for (int j = 0; j < tps.size(); j++) {
List tps_row = tps.get(j);
basic4android+开发教程
basic4android 开发教程翻译(一)建立模拟器和第一个Hello worlrd程序
如果你还没有安装Basic4android和Java SDK,请先参照后面的链接里面的安装和配置方法:
/forum/basic...droid-sdk.html
在这个教程里面,我们将建立一个新的AVD (Android Virtual Device)并生成模拟器实例. 然后我们将建立一个简单的程序,这个程序将显示一个简单的信息框,并写一个信息到日志里.
你也可以通过IDE 连接到一个真正的设备上:
使用ADB连接你的设备
使用B4A-Bridge连接你的设备
常见的问题解决列在在本教程的后面. 如果你碰见的问题没在列表或者无法解决的话, 请与*********************联系
建立新的AVD
- 运行Basic4android.
- 选择Tools 菜单- Run AVD Manager.
稍等几秒种.
- 不同版本和配置的SDK Manager 可能显示不太一样. 你需要选择Tools - Manage AVDs.
- AVD Manager 就会显示如下:
- 选择New 并填写类似下图的相应的字段(建议选择HVGA) :
- 点击Create AVD.
- 你可以建立多个AVD.每个可以具有不同的分辨率,也可以对应不同的API 版本(首先你需要安装额外的平台).
- 现在点Start来启动模拟器
- 你会看见好几个窗口弹出和消失,这个是正常情况. - 模拟器开始启动:
等待... 第一次需要好几分钟才能等到模拟器准备好. 当看见下面屏幕时说明模拟器准备好了:
Android开发之 DataBinding 使用笔记
Android开发之 DataBinding 使用笔记
一. DataBinding 概述
2015 年的 Google IO 大会上,Android 开发团队发布了一个数据绑定框架(Data Binding Library),官方原生支持 MVVM 模型。可以直接在 layout 布局 xml 文件中绑定数据,无需再 findViewById 然后手工设置数据。
1. DataBinding 优点
性能较好
DataBinding 是 0 反射,性能较好。
高效
DataBinding 可以直接在 xml 中绑定数据并实现一些处理逻辑,实时动态刷新数据,节省很多手写的代码。
简化代码
有效减少绑定应用程序逻辑和布局所需的一些耦合性代码。
2. DataBinding 缺点
复杂的布局其维护性较差(改动)
二. Databinding原理
针对每个 Activity 的布局,在编译阶段,生成一个 ViewDataBinding 类的对象,该对象持有 Activity 要展示的数据和布局中的各个 View 的引用,解决了 findViewById 问题,同时该对象还有如下功能:将数据分解到各个 View
在 UI 线程上更新数据
监控数据的变化,实时更新
DataBinding 使用的是代码生成技术。在 Build 的时候 DataBinding 会生成一些额外的类。
三. DataBinding 使用配置
DataBinding 需要 Android Gradle 插件的支持,版本至少在 1.5 以上,需要的 Android studio 的版本在
Android官方开发教程中文版(三)
Android官方开发教程中文版
支持不同设备
支持不同设备
Android设备来自世界各地,有不同形状和尺寸。通过广泛的设备类型,你的应用有机会影响到庞大的受众。为了在Android系统中尽可能地成功,你的应用需要适用各种设备配置。你应该考虑包括不同语言、屏幕尺寸以及不同版本的Android平台的某些重要的变化。
本课程教你如何用一个程序包,使用基本的平台特性,利用可替换资源和其它特性,在多种Android兼容设备上优化用户体验。
支持不同语言
从你的App代码中,把界面的字符串提取出来放在外部文件中总是一个好习惯。在Android项目中使用资源目录使这一切变得很容易。
如果你使用Android SDK工具创建项目(参见“创建Android项目”),它会在项目根目录下创建一个res/目录,res/目录下包括多种资源类型的子目录。这里会有几个默认文件,比如res/values/strings.xml就保存了你的字符串值。
创建本地化目录和字符串文件
要支持更多的语言,在res/目录下创建一个额外的values目录,并在目录名称的末尾包含连字符和标准国家代码。例如,values-es/目录包含了为语言代码“es”本地化的简单资源。Android系统会根据设备运行时的区域设置加载适当的资源。
一旦你决定了要支持哪些语言,创建相应的资源子目录和字符串文件,例如:
MyProject/
res/
values/
strings.xml
values-es/
strings.xml
values-fr/
strings.xml
android开发教程ppt课件
ppt精选版
23
1.3 Android的应用程序组件
Activity Service ContentProvider BroadcastReceiver
ppt精选版
24
第二章 Android开发环境搭建
(9) SSL - Secure Socket Layer,专门用于保护网页通讯的协 议。
ppt精选版
21
Android Runtime
Android虽然使用Java程序语言来开发、编写应用程序,但却 不使用一般大家目前在用的Java Runtime(J2ME)版本 来执行Java程序,而是用Android自有的Android Runtime来执行。Android Runtime包含下面两个核心。
(6) Media support:多媒体影音格式的支持,包含了MPEG4, H.264,MP3,AAC,AMR,JPG,PNG,GIF。
(7) GSM:GSM手机的通话能力其实必须在硬件电路层次实现, 软件层次无法实现,只是Android平台要求必须要有GSM通话 能力,此项功效特点与其说是特性,不如说是订立出最低的硬 件要求规范。
浏览器,像Mac上的Safari也是从WebKit衍生出来的。 (4) Optimized graphics:优化过的绘图函数库,包含了SGL
Android开发教程之调用摄像头功能的方法详解
Android开发教程之调⽤摄像头功能的⽅法详解
本⽂实例讲述了Android调⽤摄像头功能的⽅法。分享给⼤家供⼤家参考,具体如下:
我们要调⽤摄像头的拍照功能,显然
第⼀步必须加⼊调⽤摄像头硬件的权限,拍完照后我们要将图⽚保存在SD卡中,必须加⼊SD卡读写权限,所以第⼀步,我们应该在Android清单⽂件中加⼊以下代码
摄像头权限:
<uses-permission android:name="android.permission.CAMERA"/>
SD卡读写权限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
第⼆步,要将摄像头捕获的图像实时地显⽰在⼿机上。
我们是⽤SurfaceView这个视图组件来实现的,因此在main.xml中加⼊下列代码
<SurfaceView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/surfaceview"
/>
第三步,设置窗⼝的显⽰⽅式
⾸先获得当前窗⼝
Window window = getWindow();//得到窗⼝
接着设置没有标题
Android Eclipse开发教程
传入 TextView 构造函数的参数是一个 Context 对象,通过这个对象可以使用系统提供 的功能接口,比如加载资源,访问数据库和共享数据等等。Activity 类从 Context 类继 承而来,所以 Activity 本身是一个 Context (Java 中的继承概念) 。
TextView 对象构建以后就可以设置要显示的数据了。 tv.setText(" 这是一个测试 Android 的 helloWorld"); 最后是连接 TextView 到屏幕, 类似这样:
setContentView(tv); setContentView() 方法可以控制具体哪一个控件和系统的 UI 联系起来(我的理 解是设置为主显示 View ) 。如果没有设置,屏幕中将会显示空白。
运行效果如下
代码分析:
在 Android 中,用户界面控件被封装成了各种 Class 叫做 Views 。一个 View 是一个可 以显示的控件对象,比如 RadioButton , Animation , TextLa ble 等。其中的一个简 单的控件是 TextView:
TextView tv = new TextView(this);
Windows 下 Google Android 开发平台搭建 Eclipse 版本
1.必须软件 ① JAVA JDK SE 1.6 ② Eclipse 3.3.2 ③ Google Android SDK ④ ADT 0.8.0 2.安装过程 ① 安装 JAVA JDK SE 1.6 � 设置环境变量 � JAVA_HOME JAVA_HOME=C:\Program Files\Java\jdk1.6.0_13 � JAVA_JRE_HOME JAVA_JRE_HOME=C:\Program Files\Java\jdk1.6.0_13\jre � JRE_HOME JRE_HOME=C:\Program Files\Java\jre6 jdk-6u13-windows-i586-p.exe Eclipse For Android 开发.zip android-sdk-windows-1.1_r1.zip ADT-0.8.0.zip