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 ...
随机推荐
- SQL AND和OR求值顺序
假如需要列出价格为10美元及以上,且由DLL01或BRS01制造的所有产品.下面的SELECT语句使用组合的AND和OR操作符建立了一个WHERE子句: ; 分析▼ 请看上面的结果.返回的行中有4行价 ...
- linux route 路由设置小记
情景一: 有一台ip为172.16.160.53服务器,此服务器为固定ip,由于某些特殊情况,此服务器的ip不能修改. 现在这台服务器需要与另外一个网段ip为172.16.176.150服务器进行局域 ...
- 转:禁止360随身wifi驱动自动安装
from:http://bbs.360safe.com/thread-2643500-1-1.html 有曾经数次卸载随身wifi后,插上又会自动安装随身wifi驱动的,也可以看看下面的解决办法. 卸 ...
- AutoMagic-开源自动化平台构建思路
最近在github上看到AutoMagic自动化平台开源了,一时手痒,就试着搭了一套环境,现在把思路和大家说一说. AutoMagic从其工作分工分两部分: 1:Web端管理平台 管理平台基于Pyth ...
- Dynamics CRM2016 Web API之删除单个查找字段值
之前的博文中有介绍过,Web Api中的一个删除单个属性的Api但没提供查找字段的删除方法,本篇补充上,这里给出的示例代码是C#的(主要看url的拼接),看下url中最后的/$ref,这个标示表明了当 ...
- android ActionBarActivity设置全屏无标题
新建的Activity继承自ActionBarActivity,设置全屏无标题本来很简单的事,但是没想到app竟然无缘无故的挂,要么就是白屏一片,要么就是黑屏.坑了我一个多小时!!! 原因是Actio ...
- cassandra 概述
摘要 本篇文章主要是介绍cassandra与其他NoSQL的区别以及自身的特点与应用场景.在关系数据库我们没必要选择数据库,通常需要适配oracle/mysql/sql server/db2 等多种数 ...
- Python 好用得让人发指的函数参数语法糖
是吗? def f(x,y,z): return x+y+z t=(200,300) print(f(1,2,3)) print(f(1,*t)) 结果: >>> 6 501 这是我 ...
- C++语言编译系统提供的内部数据类型的自动隐式转换
C++语言编译系统提供的内部数据类型的自动隐式转换规则如下: 程序在执行算术运算时,低类型自动隐式转换为高类型. 在函数调用时,将实参值赋给形参,系统隐式的将实参转换为形参的类型,并赋值给形参. 函数 ...
- 磁盘管理,磁盘挂在mount,挂载光盘镜像文件,挂在U盘,umount 卸载命令, dd
1 mount 命令格式: mount[-t vfstype] -o options device dir 其中: *-t vfstype 指定文件系统的类型,通常不必指定.mount会自动选择正确的 ...