Android初级教程理论知识(第一章快速入门)
一、综合介绍。
Android项目的目录结构
Activity:应用被打开时显示的界面
src:项目代码
R.java:项目中所有资源文件的资源id
Android.jar:Android的jar包,导入此包方可使用Android的api
libs:导入第三方jar包
assets:存放资源文件,比方说mp3、视频文件
bin:存放编译打包后的文件,apk可直接在手机里安装了。
res:存放资源文件,存放在此文件夹下的所有资源文件都会生成资源id
drawable:存放图片资源
layout:存放布局文件,把布局文件通过资源id指定给activity,界面就会显示出该布局文件定义的布局
menu:定义菜单的样式
Strings.xml:存放字符串资源,每个资源都会有一个资源id
Android的配置文件(清单文件)
指定应用的包名 package="com.itheima.helloworld"
data/data/com.itheima.helloworld(上面代码指定的包名)
应用生成的文件都会存放在此路径下
Android的四大组件在使用前全部需要在清单文件中配置 的配置对整个应用生效
的配置对该activity生效
DDMS
Dalvik debug monitor service
Dalvik调试监控服务
常用的adb指令
Android debug bridge:安卓调试桥
adb start-server:启动adb进程
adb kill-server:杀死adb进程
adb devices:查看当前与开发环境连接的设备,此命令也可以启动adb进程
adb install XXX.apk:往模拟器安装apk
adb uninstall 包名:删除模拟器中的应用
adb shell:进入linux命令行
ps:查看运行进程
ls:查看当前目录下的文件结构
netstat -ano:查看占用端口的进程
电话拨号器
功能:用户输入一个号码,点击拨打按钮,启动系统打电话的应用把号码拨打出去
1. 定义布局
组件必须设置宽高,否则不能通过编译 android:layout_width="wrap_content"
android:layout_height="wrap_content"
<!-- match_parent标识匹配父节点 -->
如果要在java代码中操作某个组件,则组件需要设置id,这样才能在代码中通过id拿到这个组件 android:id="@+id/et_phone"
2. 给按钮设置点击侦听
给按钮设置侦听 //通过id拿到按钮对象
Button bt_call = (Button) findViewById(R.id.bt_call);
//给按钮设置点击
bt_call.setOnClickListener(new MyListener());
3. 得到用户输入的号码
//得到用户输入的号码,先拿到输入框组件
EditText et_phone = (EditText) findViewById(R.id.et_phone);
String phone = et_phone.getText().toString();
4. 把号码打出去
Android系统中基于动作机制,来调用系统的应用,你告诉系统你想做什么动作,系统就会把能做这个动作的应用给你,如果没有这个应用,会抛异常
设置动作,通过意图告知系统 //把号码打出去
//先创建一个意图对象
Intent intent = new Intent();
//设置动作,打电话
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + phone));
//把意图告诉系统,启动活动
startActivity(intent);
添加权限 <uses-permission android:name="android.permission.CALL_PHONE"/>
点击事件的四种写法
第一种
定义一个MyListener实现onClickListener接口 Button bt1 = (Button) findViewById(R.id.bt1);
bt1.setOnClickListener(new MyListener());
第二种
定义一个匿名内部类实现onClickListener接口 Button bt2 = (Button) findViewById(R.id.bt2);
bt2.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
System.out.println("第二种"); }
});
第三种
让当前activity实现onClickListener接口 Button bt3 = (Button) findViewById(R.id.bt3);
bt3.setOnClickListener(this);
第四种(个人比较喜欢)
给Button节点设置onClick属性, android:onClick="click"
然后在activity中定义跟该属性值同名的方法。这个方法必须有一个View参数 public void click(View v){
System.out.println("第四种");
}
短信发送器
功能:用户输入号码和短信内容,点击发送按钮,调用短信api把短信发送给指定号码
1. 定义布局
输入框的提示 android:hint="请输入号码"
2. 完成点击事件
先给Button组件设置onClick属性
onClick="send"
在Activity中定义此方法
public void send(View v){}
3. 获取到用户输入的号码和内容
EditText et_phone = (EditText) findViewById(R.id.et_phone);
EditText et_content = (EditText) findViewById(R.id.et_content);
String phone = et_phone.getText().toString();
String content = et_content.getText().toString();
4. 调用发送短信的api
//调用发送短信的api
SmsManager sm = SmsManager.getDefault(); //发送短信
sm.sendTextMessage(phone, null, content, null, null);
添加权限 <uses-permission android:name="android.permission.SEND_SMS"/>
如果短信过长,需要拆分。拆分后以集合形式存储起来。 List<String> smss = sm.divideMessage(content);
二、核心总结。
<span style="font-size:12px;">Android项目目录结构
src:项目的java代码
gen
buildConfig:应用是否可以debug
R:保存项目中使用的资源的id
Android.jar:导入这个包,应用才可以使用Android的api
libs:存放第三方jar包
assets:资源文件夹,存放视频或者音乐等较大的资源文件
bin:存放应用打包编译后的文件
res:资源文件夹,在这个文件夹中的所有资源,都会有资源id,读取时通过资源id就可以读取
资源id不能出现中文
layout:布局文件夹,保存布局文件,Android中所有布局文件都是xml文件
menu:菜单配置文件夹,保存菜单的配置文件,决定菜单的样式
values
strings:字符串资源文件,用来定义字符串资源的
dimens:长度资源文件,用来定义长度资源
style:样式和主题资源文件
清单文件
package:应用在系统中的唯一识别
versionCode:应用的版本号
具有以下子节点的activity就是入口activity
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
安装路径
第三方应用保存路径:data/app
系统应用保存路径:system/app
data/data/包名文件夹:系统为每一个应用提供的一个专属空间
DDMS
Dalvik debug monitor service
ADB
Android debug bridge 安卓调试桥。 * 建立eclipse和Android设备之间的连接
ADB指令
adb start-server:启动adb进程
adb kill-server:杀死adb进程
adb install E:\yyh.apk
adb uninstall (应用包名).应用包名是某个项目的唯一标识
adb devices:列出与开发环境建立连接的android设备的列表
adb shell:进入Android命令行
Android的指令:
ls:罗列出当前目录下的所有文件和文件夹,与ide中的file explorer是一样的。
ps:罗列出当前系统运行的所有进程
netstat -ano:查看系统的端口占用情况</span>
Android初级教程理论知识(第一章快速入门)的更多相关文章
- Android初级教程理论知识(第三章测试&数据存储&界面展现)
首先介绍单元测试,我在javaweb部分有详细介绍单元测试框架的一篇文章. 可以先看在javaweb中的单元测试详解篇http://blog.csdn.net/qq_32059827/article/ ...
- Android初级教程理论知识(第四章内容提供器)
之前第三章理论知识写到过数据库.数据库是在程序内部自己访问自己.而内容提供器是访问别的程序数据的,即跨程序共享数据.对访问的数据也无非就是CRUD. 内容提供者 应用的数据库是不允许其他应用访问的 内 ...
- Android初级教程理论知识(第九章多媒体编程)
多媒体概念 文字.图片.音频.视频 计算机图片大小的计算 图片大小 = 图片的总像素 * 每个像素占用的大小 单色图:每个像素占用1/8个字节 16色图:每个像素占用1/2个字节 256色图:每个像素 ...
- Android初级教程理论知识(第七章服务)
服务两种启动方式 startService:服务被启动之后,跟启动它的组件没有一毛钱关系 bindService:跟启动它的组件同生共死 绑定服务和解绑服务的生命周期方法:onCreate->o ...
- Android初级教程理论知识(第六章广播接受者)
总体概述: 广播接收者 现实中:电台要发布消息,通过广播把消息广播出去,使用收音机,就可以收听广播,得知这条消息 Android中:系统在运行过程中,会产生很多事件,那么某些事件产生时,比如:电量改变 ...
- Android初级教程理论知识(第五章页面跳转和数据传递)
总体概述: Android四大组件 Activity BroadCastReceiver Service ContentProvider 创建第二个activity 新创建的activity,必须在清 ...
- Android初级教程理论知识(第二章布局&读写文件)
常见布局 相对布局 RelativeLayout 组件默认左对齐.顶部对齐 设置组件在指定组件的右边 android:layout_toRightOf="@id/tv1" 设置在指 ...
- Android初级教程理论知识(第十章Fragment与动画)
Fragment 用途:在一个Activity里切换界面,切换界面时只切换Fragment里面的内容 生命周期方法跟Activity一致,可以理解把其为就是一个Activity 定义布局文件作为Fra ...
- Android初级教程理论知识(第八章网络编程二)
HttpClient 发送get请求 创建一个客户端对象 HttpClient client = new DefaultHttpClient(); 创建一个get请求对象 HttpGet hg = n ...
随机推荐
- 数据权限管理中心 - 基于mybatis拦截器实现
数据权限管理中心 由于公司大部分项目都是使用mybatis,也是使用mybatis的拦截器进行分页处理,所以技术上也直接选择从拦截器入手 需求场景 第一种场景:行级数据处理 原sql: select ...
- input中v-model和value不能同时调用时解决方案
<input type="text" v-model="keyWord" value="请输入地名地址" > 当使用如上代码时, ...
- PHP Zip File 函数
通过 PHP 中的相关函数,你可以实现 zip 文件的解压缩操作! PHP Zip File 简介 Zip File 函数允许您读取压缩文件. 安装 如需在服务器上运行 Zip File 函数,必须安 ...
- Nginx之(三)Nginx配置
一个简单的配置文件如下: #定义Nginx运行的用户及用户组 user userName userGroupName; #工作进程数目,根据硬件调整,通常等于CPU数量或者2倍于CPU worker_ ...
- Dynamics CRM2016 关闭错误报告弹框提示
在之前的版本中错误报告的弹框提示是可以在隐私首选项中设置关闭的,如下图所示 但是在2016中这个设置没了 有人说在右上角的选项中设置,但那个只能是设置个人的无法修改系统级别的.在系统中找了半天还是没有 ...
- Swift下多个Storyboard的项目结构
我是个比较喜欢用storyboard和xib的人.我个人的习惯就是,能用storyboard的一定不用代码手工撸.当然自己业余个人写的项目,基本上一个storyboard就搞定了.但涉及到多人合作下时 ...
- Android初级教程:RatingBar的使用
记得淘宝里面买家给卖家评分的时候会有一个星星状的评分条,其实就是基于RatingBar做了自定义使用了.那么本篇文章就对RatingBar的使用做一个基本的认识. 接下来就是正题,那就是对于Ratin ...
- [Flask]学习杂记--模板
这个学习杂记主要不是分享经验,更多是记录下falsk的体验过程,以后做东西在深入研究,因为django之前用的时间比较长,所以很多概念都是一看而过,做个试验了解下flask的功能. flask中使用是 ...
- BeanUtils Exception 之 FastHashMap
这里仅仅是为了记录一件十分奇怪的事情,在使用BeanUtils的过程中,所有的依赖包都添加了, common logging common collections ··· 在为boolean 这种基本 ...
- memcached实战系列(三)memcached命令使用
memcached命令的使用,在这里我们最好了解一下命令的含义,对命令有一个大致的了解,在了解的基础上进行使用.这里的命名是常用的crud命令的演示. 1.1.1. memcached命令的格式 标准 ...