2G、3G、4G技术:



     网络通讯技术:1g-->2g-->3g-->4g ..5g



     1 功能变强



     2 速度变快  



     3g:第三代移动通信技术 



 



Android起源:



     android:机器人



     android:是google公司开发的基于Linux2.6的免费开源操作系统



     升级:



          1.5 Cupcake(纸杯蛋糕) 



          1.6 Donut(甜甜圈)



          2.1 Eclair(闪电泡芙)



          2.2 Froyo(冻酸奶)



          2.3 Gingerbread(姜饼)



          3.0 Honeycomb(蜂巢)   只是给平板电脑使用的系统



          4.0 Ice cream SandWich(冰激凌三明治)三合一  手机  电视  平板 



          4.1 Jelly Bean (果冻豆 )



          4.2 Jelly Bean (果冻豆 )



          5.0 Lime Pie  (酸橙派)



 



体系结构:



     Android的四层架构图     :



          1.applicaitons:应用程序层



          2.applicaitons frameword:应用框架层(api层)



          3.libraries(库,c语言库):里面是c语言的开源框架



             Android runtime:(dalvik vm) 达尔维克虚拟机。每一个应用程序都是运行在虚拟机里面。



          4.linux kernel(内核)驱动:他是Android工程师添加的,进程间的通讯,ipc , c代码。存在安全问题。



 



dalvik虚拟机和jvm的区别



     为什么不是jvm  而要搞一个dalvik vm:



           jvm 在设计上是考虑pc 不是移动设备



          特点:1 速度快  2 功耗低 



     区别:



            1 识别的文件不同    jvm:.class 文件 .jar (压缩文件很多.class)   dalvik vm:.dex文件  只是一个文件 一次加载所有的内容  



            2 架构不同:jvm:基于堆栈(内存条)    dalvik vm:基于寄存器(cpu) 



            3 dvm:16M   20M



 



art模式:



     android runtime :android 4.4才开始有的。在应用程序安装的时候,就把.dex文件编译成为系统所能识别的文件。android系统设计是不好滴。基于虚拟机。



 



sdk目录结构:



     环境的搭建:



               不要放置在中文目录 或者有空格的目录。



     目录结构:



          add-ons:google map



          docs:文档 



          extras:额外:升级后的一些支持包  希望在低版本中也可以使用。



          platforms:开发平台



          platfrom-tools:平台工具  



          aapt:把应用程序打包成apk的工具     adb shell  进入android的文件系统



  cd  /mnt/sdcard  



  cd ..  退到上一级



 pwd  显示当前所在位置



          adb 工具:android debug  bridge 安卓调试桥  连接  手机、模拟器



          sample:例子 



          sources:源码(只是部分的源码)  关联源码



          system-images:镜像文件  安装系统 



          tools:工具



 



adb环境变量配置:



     把adb.exe所在的目录配置在path里面就可以了。



 



adb指令:



     adb shell  进入android的文件系统



     cd  /mnt/sdcard  



     cd ..  退到上一级



     pwd  显示当前所在位置



 



ddms使用:



     Devices:设备列表



     Logcat:日志



     Emulator Control:模拟器控制台



     File Explorer:文件列表



 



Android开发eclipse工程的目录结构:



     Android系统里面不可能出现两个包名相同的应用。



          src:源码 java



          gen:自动生成的java文件



          Android 4.12:Android的版本



          Android Dependencies:安卓的依赖包,支持包



          assets:资产



          bin:临时生成的



          libs:第三方的库 jar包



          res:资源(自动编译在R.java)



          drawable-hdpi(ldpi,mdpi,xhdpi,xxhdpi):图片



          layout:布局(xml)



          values(values-v11,values-v14):字符串



          AndroidManifest.xml:清单文件(配置文件 web.xml)



          project.properties:配置应用的版本号



     吧res目录下所有的资源映射到R.java文件,方便编程



 



应用程序的图片和名称:



     packge = xxx:包名



     Android:versionCode=”1“:版本号,升级



     <application:应用节点



     Android:icon="@drawable/ic_launcher":应用的图标



     Android:lable="@string/app_name":应用的标题



     <activity:界面



     Android是基于组件的开发:基于四大组件:activity     service     broadcastReceiver     provider



     j2ee也是基于组件的开发:基于三大组件:servlet     filter     listener



     图像显示:Graphical Layout



     XML显示:activity_main_xml



 



xml代码解析:



     xmls:tools ="http://schemas.android.com/tools":相对布局



     android:layout_width="match_parent":布局的宽



     android:layout_height="match_parent":布局的高



     match_parent:匹配父类



     <TextView:文本显示控件



     wrap_content:包裹内容



     android:layout_centerHorizontal="true":水平居中



     android:layout_centerVertical="true":垂直居中



     android:text="@string/hellow_world":显示内容



 



apk生成和安装的流程:



     1.打包 appt.exe



     2.上传 adb



     3.安装



     4.启动



 



点击事件的写法:



     LinearLayout线性布局,orientation:方向



          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"



               xmlns:tools="http://schemas.android.com/tools"



               android:layout_width="match_parent"



               android:layout_height="match_parent"



               android:orientation="vertical"



               tools:context=".MainActivity">



     提示信息,输入的限制类型:



          TextView,EditText,Button



     找到控件:



          et_number = (EditText) findViewById(R.id.et_number);



          bt_dial = (Button) findViewById(R.id.bt_dial);



     给按钮设置监听:



          bt_dial.setOnClickListener(new OnClickListener() { ... })--->匿名内部类



     按钮点击的时候调用:



          public void onClick(View v) { ... }



     获取号码:



          String number = et_number.).toStrgetText(ing();



     判断一下号码是否为空:



          if(TextUtils.isEmpty(number)) { ... }



     提醒用户 this:当前的类对象:



          Toast toast = Toast.makeText(MainActivity.this, "亲,号码为空", Toast.LENGTH_LONG);



     显示:



          toast.show();



     拨号:在系统里面有一个拨号的组件已经存在,激活电话应用里面的拨号组件:



          Intent intent = new Intent();--->意图对象,组成:动作和数据



     设置动作:



          intent.setAction(Intent.ACTION_CALL);



     数据:



          Uri data = Uri.parse("tel:"+number);



     设置数据:



          intent.setData(data);



     激活activity的组件:



          startActivity(intent);



     拨号的组件需要权限,该组件对外暴露的时候他要求这样的权限



     <user-permission android:name="android.permission.CALL_PHONE"/>



 



短信发送器:



     真实手机的部署程序的方法:



          1.准备真实安卓手机



          2.给手机安装驱动



          3.打开开发者模式



          4.run as



 



常见的布局(线性,相对,表格,绝对,帧布局)



     线性布局:



       Line arLayou  t线性布局,orientation:方向



     相对布局:



          android:layout_toLeltOf-->位于左边



          android:layout_toRightOf-->位于右边



          android:layout_above-->上面



          android:layout_below-->下面



          和什么对齐:



          android:layout_alignLelt-->左边



          android:layout_alignTop-->顶部



          android:layout_alignRight-->右边



          android:layout_alignBottom-->底部



          和父元素:



          android:layout_alignParentLelt-->左边



          android:layout_alignParentTop-->顶部



          android:layout_alignParentRight-->右边



          android:layout_alignParentBottom-->底部



          android:layout_centerInParent



          android:layout_centerHorizontal



          android:layout_centerVertical



          宽:



          android:layout_width



          高:



          android:layout_height



          外边距:



          android:layout_margin



     帧布局:



          特点:一层一层的显示



          <FrameLayout></FrameLayout>



          布局居中:



          android:layout_gravity="center"



     表格布局:



          特点:一行,一列



          <TableLayout></TableLayout>



          android:layout_weight="1"-->权重:比重



          android:gravity="center"-->控件里面的内容居中



     绝对布局:



          注意:开发中不要使用



          <AbsoluteLayout></AbsoluteLayout>



 



常见单位:



     dip     px(像素:不要使用)



     如果是长度的单位:dp     dip



     文字的大小:sp