Android 基础视频学习笔记 1 (完结)

这篇博客介绍了从1G到5G的通信技术发展历程,详细阐述了Android操作系统的起源及系统版本。重点讲解了Android系统构成,包括Linux内核、函数库、应用框架层和应用层。此外,还讨论了JVM与DVM的区别,以及开发环境的搭建,如Eclipse、SDK Manager和模拟器的创建。博主分享了如何进行真机调试,并提到了Android工程目录结构和四大组件的基础知识。
摘要由CSDN通过智能技术生成

综述:

              1 1G-4G的介绍:(了解)

                  1G  大哥大

                  2G  小灵通   gsm  发短信   wap.baidu.com

                  3G  沃       7.2M

                  4G :lte   100M/s

                        5G    : 华为  6亿美金     10G/s   小公司卖产品大公司卖版权(标准) 

               2 Android 操作系统的介绍(了解)

                        最初用于数码相机。Android操作系统在T-Mobile G1手机上首发。

               3 Android 系统版本介绍(了解)

               4 Android 系统构成(掌握)

               【1】linux

               【2】函数库存 由C或者C++写的

               【3】Application frameWork  应用的框架层

               【4】最上层  应用层

              5 jvm与dvm介绍(了解)

                 jvm=>.java->.class->.jar  => jdk javac 基于栈的架构

                dalvik  vm=>.java->.class->.dex->.odex=> sdk dex 基于寄存器的架构  

                区别:

                          【1】.dvm把所有的.class文件变成一个dex文件

                          【2】.基于架构的不同

                          【3】. 为什么谷歌自己研发dvm => 由于版权的原因

              ART模式提升了速度,但是增大了存储空间的占用,安装程序时增长了时间进行预编译。

            6 开发环境的搭建(掌握)

                eclipse => ibm用java语言开发的

                SDk =>docs文档  sources源码  platforms版本文件存放  .android创建模拟器需要的文件 temp临时文件 platform-tools工具

            7 sdkManager介绍

               dx.bat 把所有.class文件变成了一个dex文件

               aapt Android应用打包工具

               adb  Android调试桥

                     doc : 目录存文档

                     source:源码

                     platform:开发的平台

               intel   :  生产cpu      主要针对pc机或者笔记本

               arm   :  Advanced RISC Machines的缩写 ,生成标准

===================================================================================

               如何进行真机调试

                        如果你的手机是杂牌     可以安装   豌豆荚   360手机助手  金山手机助手 91手机助手等等

                        如果你的手机驱动能在官网下到    直接下载安装就可以了

===================================================================================

            8 模拟器的简介及创建

            Android 版本对应api级别

              2.3  ~~~ 10

              3.0  ~~~ 11

              4.0  ~~~ 14

              4.1.2~~~16

              4.4  ~~~ 19

              4.4w~~~ 20

              5.0  ~~~  21

            Android 常见分辨率  =>关乎美工切图

            320*480

            480*800

            1280*720

           ROM :只读存储器  相当于电脑的一块微小的硬盘 断电后数据不丢失

           RAM : 相当于电脑的内存条  断电数据丢失

==============================================================================

      2016/11/4    20:00-23:00   完成 模拟器创建    尝试基本功能   ***休息***                          

==============================================================================

            9 DDMS透视图介绍

                     全称:调试监控服务工具(Dalvik Debug Monitor Service)

                      File Explorer  手机文件  Data->data 文件包括了系统中安装的各类应用文件

                      Emulator Control 可以模拟短信和电话,信号和位置信息,漫游或者未注册欠费等等状态。

           10  Android-helloworld

                          Pakeage Name一般使用自己公司的名称

           11 Android工程目录结构

                        【1】src 存源码的

                        【2】gen自动生成的文件。勿动。里面的R文件非常重要。R文件上可以找到所有res文件中的资源名字。

                        【3】Android + 版本号 =>开发环境

                        【4】Android Dependencies 类包

                        【5】assets 资产目录  在此文件中放入图片在R文件中是不会被引用的

                        【6】bin:apk文件

                        【7】libs 额外jar包

                        【8】res资源文件  drawable 图片资源

                        【9】layout 布局资源

                        【10】values =>Strings.xml 字符串

                        【11】AndroidManifest.xml 清单文件=>@相当于R文件  “@drawable/ic_launcher”表示在R文件中的drawable下的ic_launcher

                                   Android中的四大组件(Activity broadCastReceiver service ContentProvider)都需要在清单文件里配置

            12 Android打包流程(了解)

                 编译-->class->dex文件     ---打包(aapt)生成一个apk文件-->adb-->device(了解)

            13 ADB指令练习(掌握)

                 【1】kill-server    杀死adb服务

                 【2】start   启动

                 【3】adb install xxxx.apk时出现adb server is out of date.killing的解决办法(来源于百度经验)

                     =>出错的原因是adb的端口被其他程序的进程占领了,所以要做的就是找到并kill该进程,

                         在cmd中执行adb nodaemon server,查看adb的端口号是多少,一般情况下是5037(why?应该软件使用的端口号是固定的)

                        再执行netstat -ano | findstr "5037" :这里稍微解释一下,显示的从左到右的意思分别是,连接类型(TCP)、本地地址和端口、

                         外部地址和端口、连接状态、进程的PID号。这里有两个进程占据着5037端口,其中一个占据的是本地的5037端口,另外一个占据的是

                         外部的5037端口,要干掉的当然就是那个本地的PID为240的端口。CTRL+ALT+DEL唤出任务管理器。点击进程,现在要找的

                         是PID为240的进程。有时候可能会发现任务管理器里没有进程PID的信息显示,这时候只要点击任务管理器的查看-->选择列,

                         如下图,然后把PID勾选上即可。这时候再次查看当前进程的PID,把PID为240的进程kill掉。

              【4】adb uninstall + 应用的包名 快速卸载一个安卓应用

              【5】adb shell 进入手机终端(进入后操作类似linux)

              【6】adb pull test.txt 把一个文件从终端拉出来  例:adb pull /dev/1.txt

              【7】adb push test.txt把一个文件从终端转移到电脑上 例:adb push 1.txt /dev/

================================================================================

      2016/11/5    20:00-22:51   跟视频完成操作,了解一些基本功能,感觉到了学过linux操作的好处  ***休息***                          

================================================================================


14 电话拨号器案例(掌握) 意图对象  Intent

【1】画UI

【2】根据UI写对应的业务逻辑  在mainActivity里面写 在onCreate方法里面写逻辑

【3】给按钮设置一个点击事件

【4】自己定义一个类去实现方法需要的参数类型

private class MyClickListener implements OnClickListener{
		//Called when a view has been Clicked.当按钮被点击的时候调用
		@Override
		public void onClick(View v) {
			//【4】获取edittext 文本内容
			String number = et_number.getText().toString().trim();
			if("".equals(number)){
				/**
				 * context 上下文
				 * Toast.LENGTH_LONG可以用1来表示。short可以用0来表示
				 */
				Toast.makeText(MainActivity.this, "number不能为空", Toast.LENGTH_LONG).show();
				return;
			}
			//System.out.println("按钮被点击了"+ number);
			//【5】进行拨打电话  意图Intent
			Intent intent = new Intent();//创建一个意图对象
			//【5.1】设置动作
	 		intent.setAction(Intent.ACTION_CALL);
	 		//【5.2】设置要拨打的数据
	 		/**
	 		 * uri:同一资源标示符 自己定义的路径 想什么就代表什么
	 		 * url:统一资源定位符 www.baidu.com
	 		 */
	 		intent.setData(Uri.parse("tel:"+number));
	 	 //【6】开启意图
	 		startActivity(intent);
		}	
	}

【5】一定记得加上拨打电话的权限

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

真机调试的时候,如果Android系统版本高于模拟器版本,logcat显示就不正常。最新的SDK运行的时候会出现

Would you like ADT to automatically monitor logcat output for messages from applications in the workspace.=>选择Yes

乐视2手机调出开发者模式需要在系统中找到版本号位置连续按七下即可进入开发者模式

SDK版本高,ADT版本低时会在eclipse中显示不出屏幕,只需要将eclipse上的Android version改为适合的就可以了。我在乐二上使用的是19(4.4)版本。

如果修改中文名导致R文件乱码报错。只需右键选择open with Text Editor .然后左上菜单选择Edit ->set Encoding ->other UTF-8

should use @string/resource 警告:Android建议引用全局变量,res/values/strings.xml文件中引用<string name="你要改动的变量的引用名">变量名</string>

例如:

 <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/AllName"
        android:textSize="22sp" />

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editText1"
        android:text="@string/Message" />


<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">helloworld</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>    
    <string name="AllName">手机拨号器</string>
   <string name="Message">拨号</string>
   
</resources>
关联源码
【1】Open Declaration =>F3 打开声明

【2】Attach Source

【3】选择External location =>External Folder

【4】选择SDK文件中的source中对应的Android版本。这里我选择的是19。按下OK。

Open type hierarchy=>F4 打开类层级视图

==================================================================================

      2016/11/6   20:00-23:21   了解到了如何查看文档,如何分清继承关系,踩了几个坑                ***休息***

     学习进度稍慢,考虑是否放下headfirst java,直接看视频先学Android,每次的选择都是意志力的消耗,慎之。                       

==================================================================================

按拨打电话时电话拨号器停止运行:requires android.permission.CALL_PHONE 拨打电话的操作权限

res=>AndroidMainfest.xml=>permissions=>Add=>Uses Permission=>Name:android.permission.CALL_PHONE

ActivityManager: Warning: Activity not started, its current task has been brought to the front 解决办法:重启程序

15 按钮的四种点击事件(掌握)

【1】定义了一内部类去实现按钮事件

【2】通过匿名内部类去实现

         抽取类:Shift+alt+m

【3】让当前类实现OnClickListener 接口类型(用于布局里面有很多按钮需要被点击的时候)

【4】在按钮的布局上加上一个onClick属性  在Activity里面定义一个方法 方法名和属性名相同(适合自己做一些Demo)

          设置一个接收参数View v

16 Android中常用布局(掌握线性和相对)

android中所有控件第一个字母大写

【1】线性布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <TextView 
        android:id="@+id/action_settings"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="请输入电话号码"
        android:textSize="19sp"
        android:layout_marginLeft="10dp"
     />
    
    <EditText 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入电话号码"/>
    <Button 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="拨打"
        />
    
</LinearLayout>

【2】相对布局

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/tv_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="拨打此电话"
        android:textSize="20sp"
        android:layout_margin="10dp"
         />
    <EditText
        android:id="@+id/tv_text" 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入电话号码"
        android:layout_below="@+id/tv_number"/>
    <Button 
        android:id="@+id/tv_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="拨打"
        android:layout_below="@+id/tv_text"
        />
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="拨打2"
        android:layout_toRightOf="@+id/tv_button"
        android:layout_below="@+id/tv_text"
        />
</RelativeLayout>

【3】帧布局(播放器中间暂停的控件)

<?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" >
    <EditText 
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:text="well"
        />
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="暂停"
        />
</FrameLayout>

【4】表格布局

<?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>
         <EditText 
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:text="well"
        android:layout_marginRight="50dp"
        />
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="暂停"
        />
	</TableRow>

</TableLayout>

wrap_content 中输入文字增多框条会向右拉伸,而match_parent则是文字向上堆叠

【5】绝对布局

  is deprecated

QQ斗地主中的三个头像

17 Android中单位介绍

padding 内边距  margin 外间距  避免使用px(在不同屏手机间相同的px所表现的出的效果不同)

dp会根据屏幕分辨率自动计算 文字用sp尺寸,非文字用dp尺寸,细线条用px.

==================================================================================

      2016/11/7  8:00-14:34         花了三天才断断续续看完一天的教程,感觉还是应该多思考。                 

==================================================================================


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值