一、排坑

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 危险权限 发短信 点击事件 安卓版本...相关推荐

  1. 《算法笔记》2.3小节——C/C++快速入门-选择结构

    <算法笔记>2.3小节--C/C++快速入门->选择结构 Contest100000567 - <算法笔记>2.3小节--C/C++快速入门->选择结构 Conte ...

  2. 安卓入门程序《发短信》

    学安卓开发,哈哈,可以自己写要给发短信的app.我写了一个十分简陋的入门Demo.详细看代码和注释吧 Java文件MainActivity package com.example.mysms;impo ...

  3. Android快速入门 四大应用组件之一Activity(打电话和发短信)功能练习

    3)在回调方法当中实现逻辑 */ public class MainActivity extends Activity implements OnClickListener { private Edi ...

  4. 将iPhone短信完整迁移到安卓系统上的方法

    背景 家人想把信息从苹果6迁移到华为手机,应用很容易迁移,通讯录采用QQ同步助手同步,但是短信就是没办法迁移,他采用itools迁移短信,但是只能导入一条信息到华为手机,于是向我求助.我经过一些探索终 ...

  5. 苹果手机短信如何转入Android手机,苹果手机怎么将短信备份导入到安卓手机?...

    iPhone手机的短信无法直接导入安卓手机,在将苹果手机换为安卓手机时,短信往往无法迁移,这让我们很苦恼.小编试了QQ同步助手,百度网盘等同步类软件,往往只能备份通讯录,而无法备份短信.本文将介绍怎么 ...

  6. 短信从iphone迁移到android,将iPhone短信完整迁移到安卓系统上的方法

    背景 家人想把信息从苹果6迁移到华为手机,应用很容易迁移,通讯录采用QQ同步助手同步,但是短信就是没办法迁移,他采用itools迁移短信,但是只能导入一条信息到华为手机,于是向我求助.我经过一些探索终 ...

  7. 安卓的短信记录导入苹果_分享一下苹果手机怎么将短信备份导入到安卓手机的方法...

    不少朋友问苹果手机怎么将短信备份导入到安卓手机这个问题,今天小编整理了就iPhone怎么将电脑上的电影拖到手机上观看这一方面的信息分享给大家 百度搜索苹果助手软件itools,下载并安装该软件. 下载 ...

  8. 安卓短信加密_发短信控制车辆!苹果发布ios14,手机可作车钥匙

    1.苹果宣布今后iPhone和Apple Watch可以作为开启和启动车辆的数字钥匙: 2.支持该系统的第一款汽车将会是宝马5系: 3."车钥匙"功能将于下月推送,iOS13上也可 ...

  9. android免费群发短信,安卓用户可免费发短信?但是Chat可能会败给微信

    原标题:安卓用户可免费发短信?但是Chat可能会败给微信 [PConline资讯]iMessage可以说是苹果的一大卖点,有了iMessage,用户可以使用网络免费发送短信,尽管这项功能曾经一度引起运 ...

最新文章

  1. android 获得应版本号,Android获得本应用版本号和版本名称
  2. java with关键字_[Java教程]javascript 里面 with 关键字
  3. WPF Binding
  4. 左神算法:最大值减去最小值小于或等于num的子数组的数量(Java版)
  5. java单击切换div_[Java教程]点击同一按钮实现div的隐藏与现实切换
  6. 专科转行学java_大专女生想转行做IT,应该先学哪一块?
  7. iOS项目开发实战——通过Http Get方式与server通信
  8. 利用 ASP.NET 2.0 中的 Web 部件和个性化释放站点的潜能 --作者:Steven A. Smith
  9. Inno自定义界面学习笔记(一)
  10. 交通行业如何做好数字化转型?| 推荐收藏
  11. web前端课程课件汇总
  12. 风吹衣袖,月上西楼- 一个技术人员的心声
  13. 借助抖音节点营销 佳沛打开“金九”新局面
  14. 部署scrapy爬虫到AWS Ubuntu 18.04,用crontab定时执行
  15. SDN控制器工作原理—Vecloud
  16. Play框架最快上手!
  17. 可能是全网最详细的python安装教程(windows),小白建议收藏
  18. 论文《Learning both Weights and Connections for Efficient Neural Network》阅读笔记
  19. 为什么巨头们都盯上了健康?
  20. 大数据综合项目--网站流量日志数据分析系统(详细步骤和代码)

热门文章

  1. 计算机专业选学经济系,高考咋选专业?看福布斯排行榜就知道了,跟着“大佬”走吃不了亏...
  2. Jeeplus-vue 实现文件的上传
  3. HIbernate中的事务
  4. java ecdh_java-ECDH使用Android KeyStore生成的私钥
  5. [Linux 基础] 嵌入式 Linux ---- uevent 机制:uevent 原理分析(深度好文)
  6. 机器学习(三)——支持向量机(神经网络对比分析)
  7. 神经网络 Embedding层理解; Embedding层中使用预训练词向量
  8. leafletjs 热力图_LeaFlet学习之热力图
  9. 天下武功唯快不破 云时代IT基建谋出路
  10. showdoc windows 搭建_第七星尘的独立博客