Android核心基础1
2014-11-23 17:27
274 查看
通信技术:
1G 模拟制式只能进行语音通话.
2G GSM, CDMA收发短信和邮件.
2.5G GPRS, EDGE访问wap网络数据.(图片, 壁纸, 文字信息)
3G WCDMA(联通), CDMA2000(电信), TD-SCDMA(移动)
发微博, 查看高清图片, 小电影.
3.5G HSDPA, HSDPA+
4G TD-LTE下载速度: 50Mb/s = 6MB/s上传速度: 10Mb/s = 1.2MB/s
100Mb/s != 100MB/s
bit
1 Byte = 8bit
100Mb/s = 12.5MB/s
操作系统:
阿里云os, Ophone, MUI, 锤子.
虚拟机的区别:
JVM: .java --> javac --> .class --> jar --> .jar
架构: 堆栈
DVM: .java --> javac --> .class --> dx.bat --> .dex
架构: 寄存器(cpu上一块高速的缓存)
下载sdk版本:
在hosts文件中追加以下信息:
74.125.113.121 developer.android.com
203.208.46.146 dl.google.com
203.208.46.146 dl-ssl.google.com
adb android debug bridge android调试桥
模拟器启动失败:
需要配置ANDROID_SDK_HOME
指定一个非中文, 并且没有空格的文件夹
加速器安装错误
android调试桥: adb命令使用
需要在系统环境遍历中path中追加adb.exe的完整路径
D:\IDE\adt-bundle-windows-x86-20130729\sdk\platform-tools
常见命令操作(需要配置adb.exe的环境变量)
adb devices 列出所有的设备
adb start-server 开启adb服务
adb kill-server 关闭adb服务
adb logcat 查看Log
adb shell 挂载到Linux的空间
adb install <应用程序(加扩展名)> 安装应用程序
adb –s <模拟器名称> install <应用程序(加扩展名)> 安装应用到指定模拟器
adb uninstall <程序包名>
adb pull <remote> <local>
adb push <local> <remote>
emulator –avd <模拟器名称>
ctrl + F11 横竖屏的切换
工程目录结构:
src: 存放java代码
gen: 存放自动生成文件的. R.java 存放res文件夹下对应资源的id
project.properties: 指定当前工程采用的开发工具包的版本
libs: 当前工程所依赖的jar包.
assets: 放置一些程序所需要的媒体文件.
bin: 工程的编译目录. 存放一些编译时产生的临时文件和当前工程的.apk文件.
res(resources): 资源文件.
drawable: 存放程序所用的图片.
layout: 存放android的布局文件.
menu: 存放android的OptionsMenu菜单的布局.
values (应用程序所需要的数据. 会在R文件中生成id)
strings.xml 存放android字符串.
dimens.xml 存放屏幕适配所用到的尺寸.
style.xml 存放android下显示的样式.
values-sw600dp 7寸平板所对应的值
values-sw720dp-land 10寸平板所对应的值
values-v11 指定3.0版本以上的手机显示的样式.
values-v14 指定4.0版本以上的手机显示的样式.
AndroidManifest.xml: android应用程序的入口文件. 声明了android里边的组件. 和相关配置信息.
proguard-project.txt: 加密当前程序所使用.
打包安装过程(Run as Android Application ) :
1. 生成apk文件.
1). 生成.dex文件.
2). 资源索引表的生成resources.arsc.
3). 准备未编译文件.
4). 清单文件AndroidMenifest.xml文件转换成二进制.
5). 使用debug.keystore对整个应用程序进行打包签名.
2. 加载apk文件到模拟器中.
把apk文件加载到/data/local/tmp/xxx.apk
3. 安装应用程序.
1). 把/data/local/tmp/xxx.apk文件, 剪切/data/app/包名-1.apk
2). 在/data/data/文件夹下以包名创建一个文件夹, 用于存储当前程序的数据.
3). 在packages.xml和packages.list文件中分别添加一条记录.
显示文本的控件 TextView
输入框控件 EditText
按钮控件 Button
MainUI.java
MainUI2.java
MainUI3.java
MainUI4.java
main.xml
1G 模拟制式只能进行语音通话.
2G GSM, CDMA收发短信和邮件.
2.5G GPRS, EDGE访问wap网络数据.(图片, 壁纸, 文字信息)
3G WCDMA(联通), CDMA2000(电信), TD-SCDMA(移动)
发微博, 查看高清图片, 小电影.
3.5G HSDPA, HSDPA+
4G TD-LTE下载速度: 50Mb/s = 6MB/s上传速度: 10Mb/s = 1.2MB/s
100Mb/s != 100MB/s
bit
1 Byte = 8bit
100Mb/s = 12.5MB/s
操作系统:
阿里云os, Ophone, MUI, 锤子.
虚拟机的区别:
JVM: .java --> javac --> .class --> jar --> .jar
架构: 堆栈
DVM: .java --> javac --> .class --> dx.bat --> .dex
架构: 寄存器(cpu上一块高速的缓存)
下载sdk版本:
在hosts文件中追加以下信息:
74.125.113.121 developer.android.com
203.208.46.146 dl.google.com
203.208.46.146 dl-ssl.google.com
adb android debug bridge android调试桥
模拟器启动失败:
需要配置ANDROID_SDK_HOME
指定一个非中文, 并且没有空格的文件夹
加速器安装错误
android调试桥: adb命令使用
需要在系统环境遍历中path中追加adb.exe的完整路径
D:\IDE\adt-bundle-windows-x86-20130729\sdk\platform-tools
常见命令操作(需要配置adb.exe的环境变量)
adb devices 列出所有的设备
adb start-server 开启adb服务
adb kill-server 关闭adb服务
adb logcat 查看Log
adb shell 挂载到Linux的空间
adb install <应用程序(加扩展名)> 安装应用程序
adb –s <模拟器名称> install <应用程序(加扩展名)> 安装应用到指定模拟器
adb uninstall <程序包名>
adb pull <remote> <local>
adb push <local> <remote>
emulator –avd <模拟器名称>
ctrl + F11 横竖屏的切换
工程目录结构:
src: 存放java代码
gen: 存放自动生成文件的. R.java 存放res文件夹下对应资源的id
project.properties: 指定当前工程采用的开发工具包的版本
libs: 当前工程所依赖的jar包.
assets: 放置一些程序所需要的媒体文件.
bin: 工程的编译目录. 存放一些编译时产生的临时文件和当前工程的.apk文件.
res(resources): 资源文件.
drawable: 存放程序所用的图片.
layout: 存放android的布局文件.
menu: 存放android的OptionsMenu菜单的布局.
values (应用程序所需要的数据. 会在R文件中生成id)
strings.xml 存放android字符串.
dimens.xml 存放屏幕适配所用到的尺寸.
style.xml 存放android下显示的样式.
values-sw600dp 7寸平板所对应的值
values-sw720dp-land 10寸平板所对应的值
values-v11 指定3.0版本以上的手机显示的样式.
values-v14 指定4.0版本以上的手机显示的样式.
AndroidManifest.xml: android应用程序的入口文件. 声明了android里边的组件. 和相关配置信息.
proguard-project.txt: 加密当前程序所使用.
打包安装过程(Run as Android Application ) :
1. 生成apk文件.
1). 生成.dex文件.
2). 资源索引表的生成resources.arsc.
3). 准备未编译文件.
4). 清单文件AndroidMenifest.xml文件转换成二进制.
5). 使用debug.keystore对整个应用程序进行打包签名.
2. 加载apk文件到模拟器中.
把apk文件加载到/data/local/tmp/xxx.apk
3. 安装应用程序.
1). 把/data/local/tmp/xxx.apk文件, 剪切/data/app/包名-1.apk
2). 在/data/data/文件夹下以包名创建一个文件夹, 用于存储当前程序的数据.
3). 在packages.xml和packages.list文件中分别添加一条记录.
显示文本的控件 TextView
输入框控件 EditText
按钮控件 Button
MainUI.java
package com.itheima28.caller; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.EditText; /** * @author andong * 程序刚运行就显示的界面 */ public class MainUI extends Activity { /** * 当界面刚被创建时回调此方法 */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 必须执行此句代码. 执行父类的初始化操作. setContentView(R.layout.main); // 设置当前界面显示的布局. } /** * 当拨打此号码的按钮被点击时触发此方法. * @param v */ public void call(View v) { System.out.println("拨打电话."); // 1. 取出输入框中的号码 EditText etNumber = (EditText) findViewById(R.id.number); // 输入框对象 String number = etNumber.getText().toString(); // 将要拨打的号码 // 2. 根据号码拨打电话 Intent intent = new Intent(); // 创建一个意图 intent.setAction(Intent.ACTION_CALL); // 指定其动作为拨打电话 intent.setData(Uri.parse("tel:" + number)); // 指定将要拨出的号码 startActivity(intent); // 执行这个动作 } }
MainUI2.java
package com.itheima28.caller; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; /** * @author andong * 程序刚运行就显示的界面 */ public class MainUI2 extends Activity { /** * 当界面刚被创建时回调此方法 */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 必须执行此句代码. 执行父类的初始化操作. setContentView(R.layout.main); // 设置当前界面显示的布局. Button btnCall = (Button) findViewById(R.id.btn_call); btnCall.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { System.out.println("MainUI2 拨打电话."); call(); } }); } /** * 拨打电话的业务方法 */ private void call() { // 1. 取出输入框中的号码 EditText etNumber = (EditText) findViewById(R.id.number); // 输入框对象 String number = etNumber.getText().toString(); // 将要拨打的号码 // 2. 根据号码拨打电话 Intent intent = new Intent(); // 创建一个意图 intent.setAction(Intent.ACTION_CALL); // 指定其动作为拨打电话 intent.setData(Uri.parse("tel:" + number)); // 指定将要拨出的号码 startActivity(intent); // 执行这个动作 } }
MainUI3.java
package com.itheima28.caller; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; /** * @author andong * 程序刚运行就显示的界面 */ public class MainUI3 extends Activity { /** * 当界面刚被创建时回调此方法 */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 必须执行此句代码. 执行父类的初始化操作. setContentView(R.layout.main); // 设置当前界面显示的布局. Button btnCall = (Button) findViewById(R.id.btn_call); btnCall.setOnClickListener(new MyOnClickListener()); } class MyOnClickListener implements OnClickListener { @Override public void onClick(View v) { System.out.println("MainUI3 拨打号码.."); call(); } } /** * 拨打电话的业务方法 */ private void call() { // 1. 取出输入框中的号码 EditText etNumber = (EditText) findViewById(R.id.number); // 输入框对象 String number = etNumber.getText().toString(); // 将要拨打的号码 // 2. 根据号码拨打电话 Intent intent = new Intent(); // 创建一个意图 intent.setAction(Intent.ACTION_CALL); // 指定其动作为拨打电话 intent.setData(Uri.parse("tel:" + number)); // 指定将要拨出的号码 startActivity(intent); // 执行这个动作 } }
MainUI4.java
package com.itheima28.caller; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; /** * @author andong * 程序刚运行就显示的界面 */ public class MainUI4 extends Activity implements OnClickListener { /** * 当界面刚被创建时回调此方法 */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 必须执行此句代码. 执行父类的初始化操作. setContentView(R.layout.main); // 设置当前界面显示的布局. Button btnCall = (Button) findViewById(R.id.btn_call); btnCall.setOnClickListener(this); } // class MyOnClickListener implements OnClickListener { // // @Override // public void onClick(View v) { // System.out.println("MainUI3 拨打号码.."); // call(); // } // } /** * 拨打电话的业务方法 */ private void call() { // 1. 取出输入框中的号码 EditText etNumber = (EditText) findViewById(R.id.number); // 输入框对象 String number = etNumber.getText().toString(); // 将要拨打的号码 // 2. 根据号码拨打电话 Intent intent = new Intent(); // 创建一个意图 intent.setAction(Intent.ACTION_CALL); // 指定其动作为拨打电话 intent.setData(Uri.parse("tel:" + number)); // 指定将要拨出的号码 startActivity(intent); // 执行这个动作 } @Override public void onClick(View v) { System.out.println("MainUI4 拨打号码.."); call(); } }
main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/title" /> <EditText android:id="@+id/number" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number" android:layout_below="@id/title" /> <Button android:id="@+id/btn_call" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/number" android:text="@string/callNumber" /> </RelativeLayout>短信发送器
package com.itheima28.smssender; import android.os.Bundle; import android.app.Activity; import android.telephony.SmsManager; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity implements OnClickListener { private EditText etNumber; private EditText etContent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etNumber = (EditText) findViewById(R.id.et_number); etContent = (EditText) findViewById(R.id.et_content); Button button = (Button) findViewById(R.id.btn_send); button.setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public void onClick(View v) { // 号码 String number = etNumber.getText().toString(); // 内容 String content = etContent.getText().toString(); SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage( number, // 收件人 null, // 短信中心号码 content, // 内容 null, null); } }
<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" tools:context=".MainActivity" > <TextView android:id="@+id/tv_number" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请输入手机号" /> <EditText android:id="@+id/et_number" android:inputType="number" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/tv_number" /> <TextView android:id="@+id/tv_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/et_number" android:text="请输入短信内容" /> <EditText android:id="@+id/et_content" android:layout_width="match_parent" android:layout_height="200px" android:gravity="top" android:layout_below="@id/tv_content" /> <Button android:id="@+id/btn_send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/et_content" android:text="发送短信" /> </RelativeLayout>
相关文章推荐
- Android4开发入门经典 之 第二部分:Android应用的核心基础
- Android核心基础(二)
- Android核心基础(十一)
- 【Android核心基础03】 - SQLite和ListView
- 【Android核心基础02】 - 界面布局、测试、数据存储访问、权限控制、XML
- 传智播客Android核心基础课程视频教程(收藏)
- Android核心基础(手机卫士的一个知识点总结)
- Android核心基础(十)
- Android核心基础(十)
- Android核心基础(手机卫士的一个知识点总结)
- Android核心基础(二)
- Android核心基础(五)
- Android核心基础(四)
- Android核心基础(十一)
- Android核心基础(七)
- Android核心基础(一)
- Android核心基础(四)
- Android核心基础(六)
- 【Android核心基础01】 - 体系结构、adb命令、目录结构、点击事件
- Android核心基础