专栏首页緣來來來安卓基础干货(一):了解一下安卓的发展历史

安卓基础干货(一):了解一下安卓的发展历史

金兴

1.1G-4G的介绍

  1. G generation
  2. 1G 大哥大 只能进行通话 不能发短信
  3. 2G wap.baidu.com 支持上网 彩信业务
  4. 3G 沃 www.baidu.com 7.2M/s
  5. 4G lte long time evolution 100M/s
  6. 主要区别 速率的不同
  7. 5G 华为 大公司卖标准 小公司卖产品 arm:并不生产处理器 10G/s

2.Android操作系统介绍

安迪鲁宾研发

3.Android历史介绍

Android版本对应api级别 
3.0 ---11
2.3----10
2.2 ---8

4.Android系统架构(重点)

第一层:应用层Application 第二层:应用框架层Application Framework 第三层:Android底层类库层 Libraries、Dalvik虚拟机 第四层:linux内核层 linux kernel Android试运行在Linux内核基础之上的。

5.两种虚拟机的不同 (重点)

1、架构不同:JVM使用栈架构;Dalvik使用的是寄存器,数据是加载到CUP的寄存器上的。 2、JVM加载的.class文件,Dalvik加载的是.dex文件,对内存的分配情况做了优化。 jvm: sun oracle dvm: 谷歌

6.SDKManger的使用

可以在里面管理SDK版本的下载和卸载。 sdk

7.模拟器的简介及创建

VGA 480* 640
QVGA 240*320
HVGA 320*480
WQVGA 240*400
FWVGA 480*854
WVGA 480*800 
AVD: Android virtual Device

8.DDMS介绍

DDMS:Device Definition Monition Service

9.SDK目录

add-ons:存放高级应用的API的文件
build-tools:构建工具
docs:开发文档
extras:存放依赖的第三方的包
platforms:各个平台的文件
adb:android debug brigde   android调试桥 

sources:API的源代码文件
system-images:系统的镜像文件
tools:工具文件

10.创建HelloWorld

部署apk文件的过程:
IDE判断adb是不是正在工作,用adb把apk文件上传到模拟上,模拟器安装apk文件,开启应用软件。

11.Android工程的目录结构

src/  java源代码存放目录
gen/ 自动生成目录
gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的资源,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。
res/ 资源(Resource)目录
在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。
libs/ 支持库目录
程序开发时需要的一些三方的jar包可以放在这个目录,系统会自动把里面的jar包,添加到环境变量。
assets资源目录
Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径,如:file://android_asset/xxx.3gp
AndroidManifest.xml 项目清单文件
这个文件列出了应用程序所提供的功能,以后你开发好的各种组件需要在该文件中进行配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等等),你还需在该文件中声明使用权限。
project.properties 项目环境信息,一般是不需要修改此文件

12.Android的打包过程

是把Android的应用程序打包成一个.apk文件,.apk文件可以安装在手机或者模拟器上。
如果是签名打包,是在打包的过程中,对文件进行了加密。
投放到Android市场上的应用软件必须签名。

aapt: Android application package tools 打包apk文件 
签名: 
adb :Android debug bridge

13.ADB命令

— 常见命令:

$ adb devices  列出所有的设备
$ adb shell 挂载到linux的空间 可以执行liux指令
$ adb  install xxx.apk 如果有多个设备,我们可以指定设备
$ adb install –s  emulator-5554 D:/xxx.apk
$ adb shell 挂载到linux空间
$ adb push 把文件推到手机里  
$ adb pull 把文件从手机里拉出来
$ ctrl + F11 横竖屏的切换

14.电话拨号器(重点)

开发项目的步骤:

1、理解需求,弄明白需求后在写代码;
2、在Android工程中设计UI界面;
3、代码实现业务逻辑;

电话拨号器的代码:

//初始化布局文件中的控件
et_phone = (EditText) findViewById(R.id.et_phone);
Button bt_call  = (Button) findViewById(R.id.bt_call);


//获得EditText控件里面的数据


bt_call.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        //拨打电话号码
        //获取数据框中的电话号码
        String phone = et_phone.getText().toString().trim();
        //创建一个拨打电话的意图
        Intent intent = new Intent(); 
        //设置拨打电话号码的动作
        intent.setAction(Intent.ACTION_CALL);

        //设置拨打的电话号码
        intent.setData(Uri.parse("tel://"+phone));

        //开启拨打电话的意图
        startActivity(intent);
    }
});

15.四种点击事件

(1)采用内部类的方式去实现OnClickListener (2)匿名内部类 (3)当前类imp OnClickListener (4)onclick

1、设置按钮的单击事件的监听器,创建匿名内部类

bt_call.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        //拨打电话号码
        String phone = et_phone.getText().toString().trim();
        Intent intent = new Intent(); 

        intent.setAction(Intent.ACTION_CALL);
        System.out.println("phone="+phone);
        intent.setData(Uri.parse("tel://"+phone));
        startActivity(intent);
    }
});

2、创建一个内部类

private class MyOnClickListener implements OnClickListener{

    @Override
    public void onClick(View v) {
        //拨打电话号码
        String phone = et_phone.getText().toString().trim();
        Intent intent = new Intent(); 

        intent.setAction(Intent.ACTION_CALL);
        System.out.println("phone="+phone);
        intent.setData(Uri.parse("tel://"+phone));
        startActivity(intent);          
    }

}

//别忘记给按钮添加一个单击事件的监听器
bt_call.setOnClickListener(new MyOnClickListener());

3、在布局文件中给按钮添加一个单击事件的响应方法,然后在代码中实现这个方法

(1)在布局文件中给按钮添加一个单击事件的响应方法

<Button 
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="拨打"
android:id="@+id/bt_call"
android:onClick="call"
/>

(2)在代码中实现这个方法

//view 表示的是按钮这个视图
public void call(View view){
    //拨打电话号码
    String phone = et_phone.getText().toString().trim();
    Intent intent = new Intent(); 

    intent.setAction(Intent.ACTION_CALL);
    System.out.println("phone="+phone);
    intent.setData(Uri.parse("tel://"+phone));
    startActivity(intent);      
}

16.五种布局

  1. 线性布局(重点) 分水平和垂直2种
  2. 相对布局:各个组件都是按照相对位置来摆放。
  3. 帧布局: 一层一层绘制
  4. 表格布局
  5. 绝对布局 已经被谷歌废弃
  6. 工作中常用的就是各种布局的嵌套使用

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 什么样的人生才是有意义的人生——没有标准的标准答案

    【导读】其实我们可以跳出这个小圈圈去更加科客观地看一下这个世界。在夜晚的时候我们仰望天空,浩瀚的宇宙中整个地球只是一粒浮尘,何况地球上一个小小的人类?在漫长的历...

    一石匠人
  • SQL中GROUP BY用法示例

    GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类...

    Awesome_Tang
  • 《动物魔法学校》儿童学编程Scratch之“外观”部分

    导读:本文通过一个案例《动物魔法学校》来学习Scratch语言的“外观”部分。之后通过一系列其他功能的综合运用对作品功能进行了扩展。

    一石匠人
  • 我不是算命先生,却对占卜有了疑惑——如何论证“占卜前提”的正确与否

    事出有因,我对《周易》感兴趣了很多年。只是觉得特别有趣,断断续续学习了一些皮毛。这几天又偶然接触到了《梅花易数》,觉得很是精彩,将五行八卦天干地支都串联了起来。...

    一石匠人
  • 声音功能让儿童编程更有创造性

    导读:Scratch中声音功能非常强大,除了常规的音效,你甚至可以模拟各种乐器的各个发音、设置节拍、休止……如果你愿意,甚至可以用它创作一个交响乐。我们可以引导...

    一石匠人
  • 天干地支五行八卦的对应关系

    一石匠人
  • 一张图理清《梅花易数》梗概

    学《易经》的目的不一定是为了卜卦,但是了解卜卦绝对能够让你更好地了解易学。今天用一张思维导图对《梅花易数》的主要内容进行概括,希望能够给学友们提供帮助。

    一石匠人
  • 复杂业务下向Mysql导入30万条数据代码优化的踩坑记录

    从毕业到现在第一次接触到超过30万条数据导入MySQL的场景(有点low),就是在顺丰公司接入我司EMM产品时需要将AD中的员工数据导入MySQL中,因此楼主负...

    haifeiWu
  • 【系统设置】CentOS 修改机器名

    ken.io
  • 儿童创造力教育与编程教育的碰撞——MIT雷斯尼克教授最新理论梗概

    儿童编程教育已经在我国各一线二线城市疯狂出现,颇有“烂大街”的趋势。我们不禁要问很多很多问题:

    一石匠人

扫码关注云+社区

领取腾讯云代金券