Android01

本文详细介绍了Android系统的四层架构,并通过实例解释了各层之间的交互原理。此外还讲解了Android开发环境的目录结构、adb常用指令及应用开发流程等内容。

Android01

android的体系结构

Android系统架构分为四层
第一,应用app层

第二,应用程序框架层

第三,核心的代码库(C,C++编写的)

第四,Linux的内核

举个例子
我写了个闹钟的App程序,每天早上7点钟开始响铃,这个闹钟.App在应用层,到了7点钟,开始调用应用框架层的通知管理
程序(Notification Manager),在调用核心代码库的媒体框架(Media Framework),在调用Linux内核的
音频驱动(Audio Drivers),然后,一层一层的往上传,最后开始响铃.

开发环境的目录结构

  1. build-tools 编译需要用到的工具
  2. docs 开发的离线文档
  3. extras 额外工具,模拟器加速器,向下兼容的jar包
  4. platforms 开发需要的平台,每个平台的android.jar在对应的文件夹里面
  5. platform-tools 开发调试的工具 adb.exe 一个重要的调试桥
  6. sources android.jar的源码
  7. system-images 模拟器创建需要的镜像
  8. tools 开发辅助需要用到的工具,模拟器.exe

adb常见指令

adb:android debug bridge 安卓调试桥 (当adb掉线了用第一个和第二个)

  • adb devices 查看链接到电脑上的所有的手机设备。(模拟器,真实的手机)
  • adb kill-server 杀死adb的调试桥
  • adb start-server 重新启动adb的调试桥
  • adb install xxx.apk 把电脑上的一个文件安装到模拟器(真实的手机)
  • adb uninstall 应用程序的包名 从手机卸载一个应用,参数是应用程序的包名,DDMS,查看应用程序的包名(R文件的路径)

ddms简介

dalvik debug manager system

android应用的目录结构

  1. src文件夹,java源代码 onCreate()界面被开启调用的方法 //设置应用程序显示的ui setContentView(R.layout.activity_main);
  2. gen目录 自动生成的文件夹 ,里面保存的是res资源文件的引用
  3. android4.1.2 代表的是引用的jar包
  4. libs文件夹 代码的三方jar包。会自动的被添加到dependencies目录下
  5. android dependencies 开发依赖的jar包
  6. bin 编译生成的临时文件和二进制文件
  7. res目录

    • drawable-ldpi low 低分辨率 小图
    • drawable-mdpi middle 中等分辨率
    • drawable-hdpi high高分辨率
    • drawable-xhdpi x加大高分辨率
    • drawable-xxhdpi 加大再加大的分辨率
    • layout 用xml文件编写的布局
    • menu 菜单文件夹
  8. AndroidManifest.xml

清单文件,配置应用程序的版本,图标,名称等重要信息。

android工程的目录结构

电话拨号器

public void onClick(View v) {

    //Toast.makeText(MainActivity.this, "按钮被点击了", Toast.LENGTH_SHORT).show();

    Intent intent = new Intent();//创建意图

    //设置动作,拨打的动作
    intent.setAction(Intent.ACTION_CALL);

    //设置数据, URL http://www.xxx.com 统一资源定位符 一般表示的是网络上的路径
    //http://www.baidu.com ftp://xunlei.com
    //Uri 统一资源定位符, tel://
    intent.setData(Uri.parse("tel://110"));
    startActivity(intent);
}

应用程序的权限

在清单文件中配置

应用程序开发的流程

  1. res–>layout文件夹 修改xml布局文件
  2. src–>.java文件编写代码
  3. 找到关心的控件 findViewById(R.id.xxx);
  4. 设置点击事件,或者获取数据
  5. 记得权限。

线性布局入门

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是按钮01" />

</LinearLayout>

相对布局的使用

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/bt_middle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true"
        android:text="o" />

</RelativeLayout>

帧布局

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_gravity="center"
        android:background="#ff0000" />

</FrameLayout>

表格布局

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_width="0px"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:text="姓名:" />

        <EditText
            android:layout_width="0px"
            android:layout_height="wrap_content"
            android:layout_weight="5"
            android:hint="请填写姓名" />
    </TableRow>

</TableLayout>

绝对布局

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<CheckBox
    android:id="@+id/checkBox1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_x="87dp"
    android:layout_y="218dp"
    android:text="CheckBox" />
</AbsoluteLayout>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值