文章目录

  • 安卓开发环境
  • Android SDK
  • adb
  • 创建第一个hello world工程
  • hello world工程详解
  • manifests清单文件
  • java源码
  • res资源
  • 安卓文件目录总结


安卓开发环境

Android SDK

SDK中包含Android开发的编译环境

android手机的hardware名列表 android hardware radio_Android

  • build-tools:编译工具
  • docs:文档
  • sources:源码
  • system-images:系统镜像
  • platfrom-tools:平台工具
  • adb工具:android debug brige 安卓调试桥(D:\Android\sdk\platform-tools)
  • AVD Manager.exe:安卓虚拟设备管理器
  • SDK Manager.exe:SDK管理器
  • monitor.exe:安卓设备监视器(D:\Android\sdk\tools\lib\monitor-x86_64)

adb

adb是安卓开发与调试的必备工具

命令

说明

adb device

列出所有设备

adb install hello.apk

安装hello.apk

adb install -s emulator -5554 D:/hello.apk

安装应用到指定模拟器

adb uninstall hello.apk

卸载hello.apk

adb pull

获取模拟器中的文件

adb push

向模拟器中写文件

adb shell

进入模拟器的shell模式

adb reboot

重启设备

adb logcat

查看日志

emulate -avd advname

启动模拟器

创建第一个hello world工程

开发工具:Andriod Studio

android手机的hardware名列表 android hardware radio_android studio_02

选择Start a new Android Studio project

android手机的hardware名列表 android hardware radio_android studio_03

应用名称和域名可以自行修改

android手机的hardware名列表 android hardware radio_Android_04

样式选择适应手机

android手机的hardware名列表 android hardware radio_android_05

Activity选择空

android手机的hardware名列表 android hardware radio_Android_06

名称默认,点击完成

android手机的hardware名列表 android hardware radio_安卓_07

点击运行

android手机的hardware名列表 android hardware radio_android_08

选择设备

android手机的hardware名列表 android hardware radio_xml_09

可以看到刚创建的app运行成功

hello world工程详解

android手机的hardware名列表 android hardware radio_Android_10

当工程创建完成以后,左侧会有一个目录,这个目录是Android Studio虚拟出来的,和磁盘上的目录是不一样的。这个虚拟目录将安卓项目做了一个分类

  • manifests 清单文件
  • java 源代码
  • res 资源

manifests清单文件

android手机的hardware名列表 android hardware radio_xml_11

  • package

manifests 下面只有一个文件AndroidManifest.xml,每一个项目的清单文件名字都是固定的。文件采用xml格式。其中有一个属性特别重要

package="com.example.a87321.myapplication"

这个属性指定了包名,包名在安卓系统中是不允许重复的。

  • application
<application
/application>

application的属性,主要是对整个app进行设置

android:icon="@mipmap/ic_launcher"

其中艾特代表引用资源,艾特后边是资源类型。格式为@资源类型/资源名称

android手机的hardware名列表 android hardware radio_安卓_12

图标保存在ic_launcher的位置,有6个不同尺寸图片,为了适应不同的分辨率。

再看下面一个xml

android:label="@string/app_name"

这里引用的是一个字符串资源

android手机的hardware名列表 android hardware radio_android studio_13

其中字符串保存在values->strings.xml里,修改了这个字符串的值就相当于是修改了app的名称

  • activity
<activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
  • activity是界面组件
  • android:name 指定界面组件对应的类名,.省略了包名
  • intent-filter指定的是这个类的一些属性
  • action.MAIN代表入口
  • category.LAUNCHER是启动器
  • 如果activity中有action.MAIN和category.LAUNCHER说明当前类就是入口类

java源码

android手机的hardware名列表 android hardware radio_Android_14

后两个文件夹用于测试,基本用不到,我们点开MainActivity

package com.example.a87321.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

其中MainActivity继承AppCompatActivity

android手机的hardware名列表 android hardware radio_android studio_15

其中MainActivity的祖先类是Context,某些方法参数是Context,我们就可以传入Activity类型的对象或者是this

super.onCreate(savedInstanceState);

在重写的onCreate方法中,首先调用了父类的onCreate函数

setContentView(R.layout.activity_main);

然后设置当前类所需要的资源ID,将代码和资源建立关系。R.layout.activity_main是一个资源ID

android手机的hardware名列表 android hardware radio_Android_16

按住Ctrl键可以看到上面有一个资源ID,这个值是安卓编译器生成的,与资源文件一一对应

String str=getString(R.string.app_name);

我们也可以用这种方式去访问资源中的字符串

然后按鼠标左键单击资源ID可以跳转到当前的资源

android手机的hardware名列表 android hardware radio_安卓_17

android手机的hardware名列表 android hardware radio_android studio_18

点击下面的Text可以切换到xml页面,这个界面相当于是安卓的可视化编辑界面

res资源

android手机的hardware名列表 android hardware radio_android studio_19

  • layout:布局
  • drawable:图片
  • mipmap:图标
  • values:字符串 颜色 尺寸等

安卓文件目录总结

安卓app的目录结构分为三大块

  • manifests清单文件,主要作用是配置整个app,是安卓逆向分析中最重要的文件
  • java是源代码
  • res是资源文件