现在这个时代已经是智能时代了,但是我的母亲连电话都不会打,因为她不识字,所以对于打电话这样的事,对她来说还是比较复杂的,可能对你我都不是事,于是我用这项技术(看起来很简单)为我不识字不会打电话的母亲做了一款属于她自己的手机拨号器,因为她是对图形是可以理解的并且也能记得住,只需要点一下,电话就打出去了,怎么实现的呢,对,就是用今天的技术实现的。如果说你是高手,可以回忆下当时自己在学习Android的时候是怎么理解的,如果你是新手,请跟上我的思路,保证让你有所收获。目前由于公共号的限制,视频可能不是特别清晰,可以直接在腾讯视频网站观看高清视频。
代码:
布局文件
权限
最后别忘了在清单文件里添加权限
1.1G-4G的介绍
G:Generation 时代;
1G:使用模拟信号,信号不稳定;
2G:使用GSM/CDMA,增加了发送短信的功能;
2.5G:使用的EDGE,提高了网速,网速仍然很慢.
3G:使用TD-SCDMA/WCDMA/CDMA2000,在线看视频网络卡;
3.9G:使用HSDPA,网路大幅提升,非常流畅;
4G:使用TD-LTE/FDD-LTE(LTE:Long Term Evolution 长期演变),100Mb/s = 12.5MB/s.
2.Android操作系统介绍
Android系统最初由安迪·鲁宾等人开发制作,最初开发
这个系统的目的是创建一个数码相机的先进操作系统;
后来发现市场需求不够大,加上智能手机市场快速成长,
于是Android被改造为一款面向智能手机的操作系统,
于2005年8月被美国科技企业Google收购。另外Android的图标来源于厕所图标
3.Android系统架构(重点)
分为4个层次:
应用程序层:安装在手上的软件都属于这一层;
程序框架层:开发程序调用的API都在这一层;
基础类库层:第三方开源的框架,dvm;
linux kernel:各种驱动;
4.两种虚拟机的不同(重点)
区别:
jvm和dvm加载的文件类型不同:jvm加载的是.jar,dvm加载的是.dex;
jvm:java—javac—.class— jar—.jar;
dvm:java—javac—.class—dx—.dex—.odex;
使用的架构不同:jvm使用的堆栈;dvm使用的是寄存器(cpu上的高速缓存);
5.ART模式
dvm运行软件时,一遍把字节码编译成机器码,然后在运行;
ART:在安装软件时,就把字节码预编译成机器码,然后存储到一个地方,在运行时,就不需要再去编译机器码了.使用art模式开机速度和软件运行的速度快;
6.搭建开发环境及SDK目录结构介绍
搭建开发环境:
1.安装JDK:
如果电脑操作系统是32位就安装32位JDK.如果电脑操作系统是64位就安装64位JDK.
2.获得开发工具adt-bundle(Android develop tool bundle安卓的开发工具集)
android studio 目前已经普及;
SDK:software develp kit 软件开发包;
SDK Manager:管理SDK的版本;
www.android-docs.com 中文在线文档;
cpu的平台:
arm: 生产cpu的标准;
intel: 用于pc机;
mips:开源的,用的少;
SDK的目录:
add-ons:存放api功能的API或DEMO;
build-tools:存放构建工具,如aapt(Android Application Packaged Tool 安卓应用程序的构建工具),开源把安卓工程打包成APK文件;
docs:存放SDK的开发文档;
extras:存放第三方工具:v4/v7/v13的jar包;
platforms:存放各个版本的SDK;
platform-tools:存放平台地 构建工具,如 adb(Android debug brigde 安卓调试桥);
sources:存放SDK源代码;
system-images:存放系统镜像文件;
temp:存放临时文件;
tools:SDK用到的工具如模拟器工具;
DDMS(Dalvik Debug Monitor Serivce 虚拟机的调试监控服务);
adb : android debug brigde 安卓调试桥;
作用: 连接设备和电脑;
9.电话拨号器(重点)
做项目的步骤:
了解需求:输入电话号码,然后拨打电话;
根据效果图,在布局文件中设计布局;
使用代码实现逻辑功能
测试
Intent 意图:
String num = phoneNum.getText().toString();// 1. 初始化一个意图 Intent intent = new Intent();// 2. 设置动作 intent.setAction(Intent.ACTION_CALL);// 3. 设置数据 Uri data = Uri.parse("tel://" + num); intent.setData(data);// 4. 激活意图 startActivity(intent);
Url统一资源定位符
Uri 统一资源标识符
10.四种点击事件
第一种:在Activity中自定义了一个OnClickListener的实现类;
第二种:在button.setOnClickListener()方法中写一个内部类;
第三种:让Activity实现OnClickListener接口,实现onClick方法;
第四种:在布局文件中,给按钮设置onClick属性,然后在Activity中写方法(public void call(View v));
11.框架布局
Android中的五大布局:
线性布局 LinearLayout:
垂直方向: 把控件在布局文件中摆放成一列;
水平方向:把控件在布局文件中摆放在同一行;
相对布局 RelativeLayout:
框架布局 FrameLayout:
表格布局 TableLayout:
TableRow
绝对布局(被google遗弃了) AbsoluteLayout:
扫码关注我们的微信