安卓day25快速入门 目录结构 清单 DDMS adb 危险权限 发短信 点击事件 安卓版本...
一、排坑
AndroidStudio非法字符: '\ufeff'
将文件格式改为以UTF-8无BOM格式编码
Sublime Text 保存时 CodeFormatter file is scratch
ctrl+shift+p打开命令面板,remove package
Android Studio内中文乱码
一、sublime打开并保存
二、
选择UTF-8
二、目录结构
- 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
三、AndroidManifest.xml
指定应用的包名
package="com.itheima.helloworld"
- data/data/com.itheima.helloworld(上面代码指定的包名)
- 应用生成的文件都会存放在此路径下
Android的四大组件在使用前全部需要在清单文件中配置
- Application的配置对整个应用生效
- activity的配置对该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:查看占用端口的进程
六、运行时权限
AndroidManifest.xml文件
<uses-permission android:name="android.permission.CALL_PHONE"/>
发短信案例
@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button bt=(Button)findViewById(R.id.send);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if (ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.SEND_SMS)!= PackageManager.PERMISSION_GRANTED){//申请权限ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.SEND_SMS},1);}else {//把动作告诉系统 send();}}});}public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {switch (requestCode){case 1://发短信权限回调if (grantResults[0]==PackageManager.PERMISSION_GRANTED){send();}else {//提示用户权限未被授予Log.d("MainActivity","未授予发短信权限");}break;}} public void send(){//拿到用户输入的号码和内容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();//1.获取短信管理器SmsManager sm = SmsManager.getDefault();//2.切割短信,把长短信分成若干个小短信ArrayList<String> smss = sm.divideMessage(content);//3.for循环把集合中所有短信全部发出去for (String string : smss) {sm.sendTextMessage(phone, null, string, null, null);} }
危险权限
表格中每个危险权限都属于一个权限组,我们在进行运行时权限处理时使用的是权限名,但是用户一旦同意授权了,那么该权限所对应的权限组中所有其他的权限也会同时被授权。
权限组名 | 权限名称 |
---|---|
CALENDAR(日历) | READ_CALENDAR |
WRITE_CALENDAR | |
CAMERA(相机) | CAMERA |
CONTACTS(联系人) | READ_CONTACTS |
WRITE_CONTACTS | |
GET_ACCOUNTS | |
LOCATION(位置) | ACCESS_FINE_LOCATION |
ACCESS_COARSE_LOCATION | |
MICROPHONE(麦克风) | RECORD_AUDIO |
PHONE(手机) | READ_PHONE_STATE |
CALL_PHONE | |
ERAD_CALL_LOG | |
WRITE_CALL_LOG | |
ADD_VOICEMAIL | |
USE_SIP | |
PROCESS_OUTGOING_CALLS | |
SENSORS(传感器) | BODY_SENSORS |
SMS(短信) | SEND_SMS |
RECEIVE_SMS | |
READ_SMS | |
RECEIVE_WAP_PUSH | |
RECEIVE_MMS | |
STORAGE(存储卡) | READ_EXTERNAL_STORAGE |
WRITE_EXTERNAL_STORAGE |
七、点击事件的四种写法
第一种
定义一个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 1.0 API等级2:Android 1.1 Petit Four API等级3:Android 1.5 Cupcake API等级4:Android 1.6 Donut API等级5:Android 2.0 Éclair API等级6:Android 2.0.1 Éclair API等级7:Android 2.1 Éclair API等级8:Android 2.2 - 2.2.3 Froyo API等级9:Android 2.3 - 2.3.2 Gingerbread API等级10:Android 2.3.3-2.3.7 Gingerbread API等级11:Android 3.0 Honeycomb API等级12:Android 3.1 Honeycomb API等级13:Android 3.2 Honeycomb API等级14:Android 4.0 - 4.0.2 Ice Cream Sandwich API等级15:Android 4.0.3 - 4.0.4 Ice Cream Sandwich API等级16:Android 4.1 Jelly Bean API等级17:Android 4.2 Jelly Bean API等级18:Android 4.3 Jelly Bean API等级19:Android 4.4 KitKat API等级20:Android 4.4W API等级21:Android 5.0 Lollipop API等级22:Android 5.1 Lollipop API等级23:Android 6.0 Marshmallow API等级24:Android 7.0 Nougat API等级25:Android 7.1 Nougat API等级26:Android 8.0 Oreo API等级27:Android 8.1 Oreo API等级28:Android 9.0 Pie
参考链接:https://www.jianshu.com/p/b9665348a694
转载于:https://www.cnblogs.com/index42/p/10436661.html
安卓day25快速入门 目录结构 清单 DDMS adb 危险权限 发短信 点击事件 安卓版本...相关推荐
- 《算法笔记》2.3小节——C/C++快速入门-选择结构
<算法笔记>2.3小节--C/C++快速入门->选择结构 Contest100000567 - <算法笔记>2.3小节--C/C++快速入门->选择结构 Conte ...
- 安卓入门程序《发短信》
学安卓开发,哈哈,可以自己写要给发短信的app.我写了一个十分简陋的入门Demo.详细看代码和注释吧 Java文件MainActivity package com.example.mysms;impo ...
- Android快速入门 四大应用组件之一Activity(打电话和发短信)功能练习
3)在回调方法当中实现逻辑 */ public class MainActivity extends Activity implements OnClickListener { private Edi ...
- 将iPhone短信完整迁移到安卓系统上的方法
背景 家人想把信息从苹果6迁移到华为手机,应用很容易迁移,通讯录采用QQ同步助手同步,但是短信就是没办法迁移,他采用itools迁移短信,但是只能导入一条信息到华为手机,于是向我求助.我经过一些探索终 ...
- 苹果手机短信如何转入Android手机,苹果手机怎么将短信备份导入到安卓手机?...
iPhone手机的短信无法直接导入安卓手机,在将苹果手机换为安卓手机时,短信往往无法迁移,这让我们很苦恼.小编试了QQ同步助手,百度网盘等同步类软件,往往只能备份通讯录,而无法备份短信.本文将介绍怎么 ...
- 短信从iphone迁移到android,将iPhone短信完整迁移到安卓系统上的方法
背景 家人想把信息从苹果6迁移到华为手机,应用很容易迁移,通讯录采用QQ同步助手同步,但是短信就是没办法迁移,他采用itools迁移短信,但是只能导入一条信息到华为手机,于是向我求助.我经过一些探索终 ...
- 安卓的短信记录导入苹果_分享一下苹果手机怎么将短信备份导入到安卓手机的方法...
不少朋友问苹果手机怎么将短信备份导入到安卓手机这个问题,今天小编整理了就iPhone怎么将电脑上的电影拖到手机上观看这一方面的信息分享给大家 百度搜索苹果助手软件itools,下载并安装该软件. 下载 ...
- 安卓短信加密_发短信控制车辆!苹果发布ios14,手机可作车钥匙
1.苹果宣布今后iPhone和Apple Watch可以作为开启和启动车辆的数字钥匙: 2.支持该系统的第一款汽车将会是宝马5系: 3."车钥匙"功能将于下月推送,iOS13上也可 ...
- android免费群发短信,安卓用户可免费发短信?但是Chat可能会败给微信
原标题:安卓用户可免费发短信?但是Chat可能会败给微信 [PConline资讯]iMessage可以说是苹果的一大卖点,有了iMessage,用户可以使用网络免费发送短信,尽管这项功能曾经一度引起运 ...
最新文章
- android 获得应版本号,Android获得本应用版本号和版本名称
- java with关键字_[Java教程]javascript 里面 with 关键字
- WPF Binding
- 左神算法:最大值减去最小值小于或等于num的子数组的数量(Java版)
- java单击切换div_[Java教程]点击同一按钮实现div的隐藏与现实切换
- 专科转行学java_大专女生想转行做IT,应该先学哪一块?
- iOS项目开发实战——通过Http Get方式与server通信
- 利用 ASP.NET 2.0 中的 Web 部件和个性化释放站点的潜能 --作者:Steven A. Smith
- Inno自定义界面学习笔记(一)
- 交通行业如何做好数字化转型?| 推荐收藏
- web前端课程课件汇总
- 风吹衣袖,月上西楼- 一个技术人员的心声
- 借助抖音节点营销 佳沛打开“金九”新局面
- 部署scrapy爬虫到AWS Ubuntu 18.04,用crontab定时执行
- SDN控制器工作原理—Vecloud
- Play框架最快上手!
- 可能是全网最详细的python安装教程(windows),小白建议收藏
- 论文《Learning both Weights and Connections for Efficient Neural Network》阅读笔记
- 为什么巨头们都盯上了健康?
- 大数据综合项目--网站流量日志数据分析系统(详细步骤和代码)
热门文章
- 计算机专业选学经济系,高考咋选专业?看福布斯排行榜就知道了,跟着“大佬”走吃不了亏...
- Jeeplus-vue 实现文件的上传
- HIbernate中的事务
- java ecdh_java-ECDH使用Android KeyStore生成的私钥
- [Linux 基础] 嵌入式 Linux ---- uevent 机制:uevent 原理分析(深度好文)
- 机器学习(三)——支持向量机(神经网络对比分析)
- 神经网络 Embedding层理解; Embedding层中使用预训练词向量
- leafletjs 热力图_LeaFlet学习之热力图
- 天下武功唯快不破 云时代IT基建谋出路
- showdoc windows 搭建_第七星尘的独立博客