热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

2.Android基础总结.doc(第一节、基本知识了解)

作者:韩亚飞_yue31313_韩梦飞沙QQ:313134555第一部分、安卓基础整理第一节、基本知识了解一、知识概括1、Ecl

作者:韩亚飞_yue31313_韩梦飞沙 QQ:313134555


                            第一部分、安卓基础整理

     第一节、  基本知识了解

一、知识概括

1、Eclipse插件的安装及使用

2、Android的打包过程理解

3、两个基本demo理解

4、程序框架结构的理解

二、知识总结

1、移动技术知识

3G技术的扩展:3G,全称为3rd Generation,中文含义就是指第三代数字通信。

所谓3G,是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统。 3G只是一种通信技术标准,符合这个标准的技术有WCDMA、CDMA2000、TD-SCDMA三种无线接口标准。

中国联通使用的是WCDMA(世界上大部分3G网络都采用的是该标准)

中国电信使用的是CDMA2000 (日、韩和北美使用);

中国移动使用的是具有自主知识产权的TD-SCDMA(只有中国才使用)。

2、Android发布及体系

版本经历了快速的更新,目前已经趋于稳定

安卓2.1版本开始火爆,因为有了sip通话的支持和ip通话 ip视频协议栈的支持。2.2-2.3版本开始稳定。

3.0-3.1版本应用于平板电脑上

 

开源的控制:

因为安卓是开源的,谷歌为了控制程序员对源码的过大修改而导致源码过于扩散,对于源码的发布发布了谷歌的约束----cts测试:

cts测试:这是google程序员自己编写的测试case.其目的就是不让我们的开发商对代码的结构做太大变化的修改,如果说测试case不能通过,那么我们的这个操作系统就无法得到google的认证.

授权android:

android以两种不同的开源许可发布.linux内核是GPL发布,开源os需要该授权.android平台(不含内核)由apache发布.两种发布模式都是开源为主,不同是后者面向商业用途.

 

安卓结构体系:android有四层体系结构,通过自身携带的虚拟机运行应用

需要说明的是:    1、安卓的虚拟机是在编译时优化代码

2、内部有一个常量池会将所有代码整合在一起,将需要的变常量整合在这个常量池节省了存储和执行效率。

3、执行的效率要高些,成操作需要更多的load/store指令(指令分配次数和内存访问次数),二/三地址占内存多些,但操作更少,访问内存执行数度是一个瓶颈

3、开发环境相关

android环境安装需要

Eclipse下安装ADT插件,并需要导入sdk使用路径

Sdk源文件也就是目前使用的安卓的api版本。

模拟器的设置

辨率大小设置

VGA:640*480

HVGA:480*320

...

API版本指定------在创建模拟器的时候需要指定api的版本

Android api 版本号 -------------普通的api版本

Google api 包括对应的Android api,并且包含google的地图包

ddms-------android开发的图形管理界面

了解界面中各个布局的作用即可

配置AVD路径:

添加Android_SDK_HOME环境变量,从变量名上看最好把ANDROID_SDK_HOME指向Android SDK目录,然后启动AVD

 

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界面文件,图片或数据。

res/drawable 专门存放png、jpg等图标文件。在代码中使用getResources().getDrawable(resourceId)获取该目录下的资源。

res/layout 专门存放xml界面文件,xml界面文件和HTML文件一样,主要用于显示用户操作界面。

res/values 专门存放应用使用到的各种类型数据。

 

assets资源目录:Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径,如:file:///android_asset/xxx.3gp

 

AndroidManifest.xml项目清单文件:这个文件列出了应用程序所提供的功能,以后你开发好的各种组件需要在该文件中进行配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等等),你还需在该文件中声明使用权限。

default.properties项目环境信息,一般是不需要修改此文件

 

4、模拟器和虚拟机的区别:

模拟器是跑在虚拟机上的,也就是说虚拟机模拟出了一个具有内存等的的硬件环境,而模拟器就相当于一个应用软件运行在这个硬件环境中。

adb---android debug bridge   android的调试桥

adb的基本操作

android显示SDK and AVD manager

android listavds  列出我们创建的模拟器

adb 连接的调试桥的socket出现了错误

1. adbkill-server

2.  adb start-server

把电脑上的某个应用装(. apk)到模拟器或者手机里面

adb install  demo.apk

adb install –s emulator-5554 D:/xxx.apk

Failure[INSTALL_FAILED_ALREADY_EXISTS]

卸载一个手机上的程序

adb uninstall [包名]

莫名其妙问题 adb 版本不兼容

android listtargets 列出我们可以使用的 sdk的版本

adb version 查看adb的版本

adb devices 查看当前所有连接上来的设备信息

adb shell 来到模拟器或者是真机的控制台

ls 查看目录信息

ps 查看当前运行进程信息

kill pid 杀死进程

emulator –avd advname  启动模拟器

   例如:emulator –avd 2.2 (2.2 为我们创建设备的名称)

mkmdcard 20md:/sdcard.img 创建sdcard

adb pull

adb push

android createavd –nameandroid2.2 –target 8  创建模拟器

ctrl + F11 横竖屏的切换

 

5、初级代码练习

1)拨打电话

清单权限

 

Java核心代码

public void onClick(View v) {

               EditText editText =(EditText)findViewById(R.id.mobile);

              //-----------Intent intent = newIntent(Intent.ACTION_CALL, Uri.parse("tel:"+ editText.getText()));这一步可以分解为以下三步-------------

Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:"+number));

 

              DialerAction.this.startActivity(intent);

       }

2)发送短信

清单权限

Java核心代码

public void onClick(View v) {

String mobile = mobileView.getText().toString();

       String cOntent=contentView.getText().toString();

        SmsManager smsManager =SmsManager.getDefault();

        PendingIntent sentIntent =PendingIntent.getBroadcast(SMSSender.this, 0, new Intent(), 0);

       //如果字数超过70,需拆分成多条短信发送                            

       List msgs= smsManager.divideMessage(content);

       for(String msg : msgs){

           smsManager.sendTextMessage(mobile, null,msg, sentIntent, null);

        //最后二个参数为短信已发送的广播意图,最后一个参数为短信对方已收到短信的广播意图

        }

}

6、知识扩展

Log的使用

在安卓开发中提供了一个日志类,用于显示测试信息

真机调试

连接手机,需要设置USB连接

apk打包过程

7、常用布局

相对布局(RelativeLayout)

       线性布局(LinearLayout)

              android:orientation="vertical"竖直线性布局

              android:orientation="horizontal"水平线性布局,若不设置此属性,默认为水平

       绝对布局()

       表格布局()

              每个TableTow标签分隔一个表格。

       帧式布局()

             

       注意:    界面配置文件名不可以用为new.xml,因为文件名会在R.java文件中生成一个关键字,而java文件的关键字不可以为 new .

              dp设置相对大小,根据屏幕大小变化。

              px设置绝对大小,不会产生变化。

8、Junit测试

       一要使被测试的类继承AndroidTestCase类

              其中有一个Assert.assertEquals(期望值,实际值)方法,可以对比结果。

       二要在清单文件中设置测试声明

              manifest清单下设置

                    

                     android:name="android.test.InstrumentationTestRunner"

                     android:targetPackage="com.itheima.junit"/>

 

              application清单下设置

                    

       创建测试工程

9、日志输出

       AndroidTestCase类中的Log类中有获取权限位置信息的方法

              Log.v("LogTest","verbose");

              Log.d("LogTest","debug");

              Log.i("LogTest","info");

              Log.w("LogTest","warn");

              Log.e("LogTest","error");

 



推荐阅读
  • 材料光学属性集
    材料光学属性集概述了材料在不同光谱下的光学行为,包括可见光透射率、太阳光透射率等关键参数。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • 本文详细介绍了Android系统的四层架构,包括应用程序层、应用框架层、库与Android运行时层以及Linux内核层,并提供了如何关闭Android系统的步骤。 ... [详细]
  • 题目编号:2049 [SDOI2008]Cave Exploration。题目描述了一种动态图操作场景,涉及三种基本操作:断开两个节点间的连接(destroy(a,b))、建立两个节点间的连接(connect(a,b))以及查询两节点是否连通(query(a,b))。所有操作均确保图中无环存在。 ... [详细]
  • 使用Echarts for Weixin 小程序实现中国地图及区域点击事件
    本文介绍了如何使用Echarts for Weixin在微信小程序中构建中国地图,并实现区域点击事件。包括效果展示、条件准备和逻辑实现的具体步骤。 ... [详细]
  • Android Studio: 修改应用包名的详细步骤
    本文详细介绍了在Android Studio中如何修改应用的包名,包括具体的操作步骤和注意事项。这对于需要更改包名以适应不同需求的开发者非常有用。 ... [详细]
  • 本文介绍了一个使用mii-tool工具检查网络接口状态的Bash脚本,并将结果记录到日志文件中。 ... [详细]
  • 本文探讨了如何在Windows程序中实现高精度的定时控制,特别是针对需要精确控制发包频率的应用场景,如“小兵以太网测试仪”。 ... [详细]
  • 本文将介绍如何使用原生JavaScript实现一个连连看小游戏中的一个关键功能:当用户点击列表项时,获取该列表项的索引。 ... [详细]
  • 在使用 Python 编程时,如果在一个函数中引用了未声明为全局变量的外部变量,可能会遇到 UnboundLocalError。本文将通过一个具体的例子来解释如何解决这个问题。 ... [详细]
  • 本文详细介绍了进程、线程和协程的概念及其之间的区别与联系。进程是在内存中运行的独立实体,具有独立的地址空间和资源;线程是操作系统调度的基本单位,属于进程内部;协程则是用户态下的轻量级调度单元,性能更高。 ... [详细]
  • Python 日志记录模块详解
    日志记录机制是软件开发中不可或缺的一部分,它帮助开发者追踪和调试程序运行时的各种异常。Python 提供了内置的 logging 模块,使我们在代码中记录和管理日志信息变得更加方便。本文将详细介绍如何使用 Python 的 logging 模块。 ... [详细]
  • 题目描述:计算从起点到终点的最小能量消耗。如果下一个单元格的风向与当前单元格相同,则消耗为0,否则为1。共有8个可能的方向。 ... [详细]
  • 本文介绍如何通过参数化查询来防止SQL注入攻击,确保数据库的安全性。示例代码展示了在C#中使用参数化查询添加学生信息的方法。 ... [详细]
  • 树莓派4B:安装基础操作系统指南
    本文将详细介绍如何为树莓派4B安装基础操作系统,包括所需材料、镜像下载、镜像烧录以及更换国内源等步骤。 ... [详细]
author-avatar
窝窝六六柒柒巴巴
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有