Android入门笔记01
Android的历史
安卓是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。
Android体系结构
Android项目的目录结构
- Activity:应用被打开时显示的界面
- src:项目代码
- R.java:项目中所有资源文件的资源id
- Android.jar:Android的jar包,导入此包方可使用Android的api
- libs:导入第三方jar包
- assets:存放资源文件,比方说mp3、视频文件
- bin:存放编译打包后的文件
- 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"
如果要在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"/>
@源码
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.administrator.myapplication"><uses-permission android:name="android.permission.CALL_PHONE"/><applicationandroid:allowBackup="true"android:icon="@mipmap/chrome"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter></activity></application></manifest>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="请输入电话号码"/><EditTextandroid:id="@+id/et_phone"android:layout_width="match_parent" android:layout_height="wrap_content"android:text="132313123135"/><Button android:id="@+id/bt_call" android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="拨打"/></LinearLayout>
MainActivity
package com.example.administrator.myapplication;import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//给按钮设置监听//得到按钮对象Button button = findViewById(R.id.bt_call);//设置监听button.setOnClickListener(new MyListener());}class MyListener implements View.OnClickListener{@Overridepublic void onClick(View v) {System.out.println("按钮被点击了");EditText editText = findViewById(R.id.et_phone);String phone = editText.getText().toString();//创建意图对象Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:"+phone));//把动作告诉系统startActivity(intent);}}
}
@效果演示
点击事件的四种写法
第一种
定义一个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() {@Overridepublic 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中定义跟该属性值同名的方法
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
//调用发送短信的apiSmsManager sm = SmsManager.getDefault();//发送短信sm.sendTextMessage(phone, null, content, null, null);
添加权限
<uses-permission android:name="android.permission.SEND_SMS"/>
如果短信过长,需要拆分
List<String> smss = sm.divideMessage(content);
Android入门笔记01相关推荐
- 【mysql入门笔记01 2022.9.27】
mysql入门笔记01 2022.9.27 数据库概念 数据库管理系统 关系型数据库(RDBMS) 非关系型数据库(NoSQL) SQL概念 Mysql 版本 Mysql安装 Mysql启动 方式一 ...
- Android入门笔记之更改手机屏幕方向
Android入门笔记之更改手机屏幕方向 <1>简介 通过一个按钮组来改变横屏竖屏显示. <2>关键步骤 主要通过android.app.activity.getRequest ...
- ESP32 入门笔记01:乐鑫ESP32-DevKitC开发板信息、开发环境搭建以及学资料准备
文章目录 一.ESP32-DevKitC 开发板介绍 二.ESP32 开发环境 1. Arduino IDE 1.1 开发环境搭建步骤 1.2 实验:使用 Arduino IDE 将代码上传到 ESP ...
- 【Android基础笔记01】Android开发环境搭建和HelloWorld
最近手头项目3.0版本要上线了, 没有那么多工作压力了, 抽空看了看之前在云笔记上做的笔记 都是一些基础知识 给大家分享出来吧 一.什么是Android?[了解 ] Android(中文俗称安卓)是一 ...
- SolidWorks 入门笔记01:草图绘制
全文目录 简介 1. 草图的创建 1.1 在基准面上新建一个二维草图 多学一招:退出草图绘制模式,快捷键切换视图 1.2 从已有的草图派生新的草图. 1.3 在零件的平面上绘制草图 多学一招:Soli ...
- 前端入门笔记01 —— html
一些框架 html中如果要改内容要放在<body> </body>之间 <html lang = en><head><meta charset = ...
- linux入门笔记01
目录 目录 一.linux安全模型 1.用户: 2.用户组: 3.进程 二.用户.用户组管理及权限设置 1.用户管理 1.1.用户的增删改查 1.2.用户密码的增删改查 2.用户组管理 2.1.用户组 ...
- 【deepctr】学习入门笔记01
目录 了解 准备工作 1.下载包 2.导入pycharm 3.导入所需包 代码(例:run_classification_criteo.py) 导入所需包 数据预处理 1.对稀疏特征进行标签编码,对稠 ...
- 路飞学城python电子书_路飞学城python入门笔记01
机器语言:优点最底层,速度最快,缺点最复杂,开发效率最低 汇编语言:有点比较底层,速度最快,缺点最复杂,开发效率最低 高级语言: 高级语言所编制的程序不能直接被计算机识别 必须经过转换才能被执行 按转 ...
- SolidWorks 入门笔记02:三维实体(特征)
全文目录 特征分析 零件三维实体建模的基本过程 1.草绘特征 1.1 拉伸 1.1.1 拉伸凸台/基体 1.1.2 拉伸薄壁特征 1.1.3 拉伸切除特征 练习 - 销钉 1.2 旋转 1.2.1 旋 ...
最新文章
- install vim plugin local file offline
- git切换ssh和http协议
- linux下 SCP 、ssh、ssh-copy-id采用非默认端口传输
- future 线程报错后_线程池运用实例——一次错误的多线程程序设计以及修复过程...
- 计算机组成原理存储结构,计算机组成原理与体系结构----存储系统
- 关于大学生玩网络游戏的调查问卷
- Reset Password 重置密码 (CentOS 5,6,7 ; Juniper Networks: SRX100 )
- 模拟linux内核异常,Linux内核异常
- 项目介绍star原理_这个 Python 项目厉害了!多个实战案例教你分析时空数据处理...
- android dialog动画_Android超级酷炫实用的UI框架
- 编写代码模拟三次密码输入的场景。
- 欢迎甲方跳槽到云厂商
- 台式电脑显示无法连接服务器,台式电脑无法连接网络怎么办
- 外贸常用术语_常见国际贸易专业术语有哪些?
- 【社区周会】2021-04-27 内容概要
- 【吴刚】电商网站详情页设计初级入门标准视频教程-吴刚-专题视频课程
- python 100days github_GitHub - fxianchao/Python-100-Days: Python - 100天从新手到大师
- 五、《图解HTTP》报文首部和HTTP缓存
- 内存自动清理.sql
- 腐肉为引,气球为信,负重前行,只为爱你