Pro,Android学习笔记(一七一):说最后x[本站推荐]

时间:2020-10-04 12:21:46下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《Pro,Android学习笔记(一七一):说最后x[本站推荐]》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《Pro,Android学习笔记(一七一):说最后x[本站推荐]》。

第一篇:Pro,Android学习笔记(一七一):说最后x[本站推荐]

Pro Android 学习笔记(一七一):说在最后 文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处 http://blog.csdn.net/flowingflying/以及作者@恺风 Wei。

对于《Pro Android 4.0》的学习笔记总算是有始有终,也算是不容易。

Android 已经是相当成熟的操作系统,也正在向物联网等方向发展。在一两周之前,有一个课题要写科技报告,里面谈到了 Android 当下的发展趋势。摘取部分并作了修改,以此作为本系列笔记的结束语。

这个系列始于 2013 年 6 月,终于 2015 年 7 月,超过了 2 年。在这段时间内,我们看到了手机操作系统、应用开发以及手机出现了新发展趋势。

一、手机操作系统臻于成熟。

一、手机操作系统臻于成熟。

Android 系统的版本更新速度正在放慢,意味着 Android 操作系统已经步入成熟期,无需进行频繁的系统更新。

原本谷歌公司的 Android 操作系统演进速度很快,在 2009 年发布了 3 个版本(跨两个大版本);接着从 2010 年至 2013 年的 4 年时间内,一共发布了 8 个版本(跨三个大版本),平均每半年发布一个版本。然而,在 2014 年,谷歌公司只在10 月 15 日发布了新版本 5.0,距离上一个版本发布的时间间隔为 407 日,超过 1年时间(约 13 个月)。

与此同时,Android 操作系统向物联网方面延伸,衍生出 Android Wear、Android Auto 等操作系统。这些都标志着 Android 操作系统的成熟,并开始横向覆盖到其他领域。

对 二、谷歌公司对 Android 系统采取新的管控手段。

系统采取新的管控手段。

新的管控手段意在降低其他对 Android 生态系统的利用,包括在 Android原生操作系统上发展的分支操作系统,以及通过兼容 Dalvik 虚拟机而兼容Android 应用的操作系统。

主要体现在以下两大方面:其一、停止部分开源应用的更新,新版本转到闭源中发布;其二、将部分更新转为服务更新,并通过非开源 API 绑定开发者。而后者关键就是 Google Play Services,也称为 GMS(其 java 包名为com.google.android.gms)。GMS 和一般应用不同,它提供谷歌私有的软件开发包(SDK)和应用程序编程接口(API)。

三、HTML5 的发展和轻应用的出现提供新的应用生态系统控制点。的发展和轻应用的出现提供新的应用生态系统控制点。

HTML5 经过几年的发展,虽然在 Web OS 方面未能占据稳固的市场立足点,但在应用,尤其在跨平台开发上越来越重要,此外通过 HTML5 使用云端能力,将帮助开发者更好更快地进行开发,将注意力集中在应用的创新上。

微信以轻应用的方式提供了另一种建立在平台之上的平台模式,并已经成功建立起生态圈。特别在企业应用方面,微信的公众号发展很快,将占了企业应用的入口。微信提供开发 API,开发者无需关心智能终端的操作系统具体是 Android,iOS 还是 Windows Phone,开发者也无需通过苹果公司或者谷歌公司的应用商店发布产品,只需申请微信公众号。在某种意义上,微信是跨平台的平台,虽然其不是操作系统,但在各智能终端操作系统的平台之上建立了开发者社区,应用发布以及电子商务渠道,构成完整的生态系统。

四、4G 移动通信大爆发以及全网通手机的普及。

移动通信大爆发以及全网通手机的普及。

4G 提供的更好更快更宽的流量可能会成为大流量应用(如视频)发展的新契机。

而全网通手机进一步解耦手机和运营商的捆绑关系,可以同时覆盖三大运营商的全国用户,手机制造商可更独立更自主地开拓各自的终端市场,进一步激活电商渠道。换而言之,BAT 这类互联网厂商会越来越牛。他们并非代表新兴的互联网科技技术,而是代表野蛮生长(中性词)的新兴互联网资本,开始扫荡传统行业,重塑人们的生活模式。

五、智能手机的巨大销量带动了移动终端的器件发展快速。

五、智能手机的巨大销量带动了移动终端的器件发展快速。

位芯片开始进入商用,SoC 集成越来越多的功能。2013 年 9 月推出的 iPhone 5S 是第一款采用 64 位架构(ARMv8)的芯片,这标志着手机计算能力的提高。而 SoC 集成度越高,则令手机制造的门槛进一步降低。

本 希望本 Pro Android 学习笔记系列能对大家有所帮助。

学习笔记系列能对大家有所帮助。

Thanks for all.相关链接:

我的 Android 开发相关文章

第二篇:Android学习笔记总结初学者必看

Android学习笔记总结

第一步:

Android(1)项目名称;Build Target程序名称;Package name程序所支持的最低 SDK 版本代号(2 对应 1.1,3 对应 1.5,4 对应 1.6)

6、运行 Android 项目

打开菜单 “Run”-> “Run Configurations”-> New launch configuration,设置启动项目名称,在 Android 选项卡中选择启动项目,在 Target 选项卡中设置模拟器

7、创建/使用模拟 SD 卡

创建 SD 卡,运行类似如下命令:mksdcard-l sdcard 512M d:androidsdcard.img 模拟器中使用 SD 卡,在项目配置的 Target 选项卡的 “Additional Emulator Command Line Options” 框中输入类似如下参数:-sdcard d:androidsdcard.img

8、配置模拟器

运行类似如下命令:android create avd--name android15--target 2。或者直接在菜单 “Window”-> “Android AVD Manager” 中配置模拟器

9、浏览模拟 SD 卡中的内容

调试程序,在 DDMS 中选择 “File Explorer”,在其中的 sdcard 目录下就是模拟 SD 卡中的内容

10、查看日志 LogCat Window-> Show View-> Other-> Android-> LogCat

11、在模拟器中安装/卸载 apk 安装 apk 运行类似如下命令:adb install name.apk;卸载 apk 运行类似如下命令:adb uninstall packagename(注:这里的参数是需要卸载的包名)

12、反编译 Android 程序

解压 apk 文件,取出其中的 classes.dex 文件,运行类似如下命令:dexdump.exe-d classes.dex > dump.txt(其意思是将 classes.dex dump 出来,并将反编译后的代码保存到指定的文本文件中)

13、人品不好是出现的某些错误的解决办法 如果出现类似如下的错误等 no classfiles specified Conversion to Dalvik format failed with error 1 解决办法:Project-> Clean 出现 Android SDK Content Loader 60%(一直卡在 60%)解决办法:Project-> 去掉 Build Automatically 前面的勾

14、查看 SDK 源代码

先想办法搞到源代码,如这个地址 http://www.xiexiebang.com/android.asp,然后将其解压到 SDK 根路径下的 sources 文件夹内即可

二、Android 项目的目录结构

1、src自动生成 R.java 文件,用于引用资源文件(即 res 目录下的数据)

3、assets用于放置图片之类的资源;res/layout用于放置一些常量数据

5、AndroidManifest.xml布局(Layout)和菜单(Menu)介绍

在 Android 中各种布局的应用,以及菜单效果的实现

 各种布局方式的应用,FrameLayout, LinearLayout, TableLayout, AbsoluteLayout, RelativeLayout

为指定元素配置上下文菜单,为应用程序配置选项菜单,以及多级菜单的实现

1、各种布局方式的演示 res/layout/main.xml 代码

android:layout_height=“wrap_content” android:text=“FrameLayout”>

android:layout_height=“wrap_content” android:text=“Frame Layout”>

android:layout_height=“wrap_content” android:text=“@string/hello” />

android:layout_width=“fill_parent”>

android:layout_height=“wrap_content” android:text=“AbsoluteLayout”

android:layout_x=“100px” android:layout_y=“100px” />

_Button.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;

public class _Button extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.button);

setTitle(“Button”);

Button btn =(Button)this.findViewById(R.id.button);btn.setText(“click me”);

// setOnClickListener()图片按钮控件-->

android:layout_width=“wrap_content” android:layout_height=“wrap_content”>

_ImageButton.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageButton;import android.widget.TextView;

public class _ImageButton extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.imagebutton);

setTitle(“ImageButton”);

ImageButton imgButton =(ImageButton)this.findViewById(R.id.imageButton);// 设置图片按钮的背景

imgButton.setBackgroundResource(R.drawable.icon01);

// setOnClickListener()图片显示控件-->

android:layout_height=“wrap_content”>

_ImageView.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;

import android.widget.ImageView;

public class _ImageView extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.imageview);

setTitle(“ImageView”);

ImageView imgView =(ImageView)this.findViewById(R.id.imageView);// 指定需要显示的图片

imgView.setBackgroundResource(R.drawable.icon01);} }

5、CheckBox 的 Demo checkbox.xml 代码

android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>

android:layout_height=“wrap_content” android:id=“@+id/textView” />

android:layout_width=“wrap_content” android:layout_height=“wrap_content”>

_DigitalClock.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;

public class _DigitalClock extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.digitalclcok);

setTitle(“DigitalClcok”);} }

Android(6)日期选择控件 TimePicker双状态按钮控件 EditText进度条控件 SeekBar支持自动完成功能的可编辑文本控件 MultiAutoCompleteTextView日期选择控件-->

android:layout_width=“wrap_content” android:layout_height=“wrap_content”>

_DatePicker.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;

public class _DatePicker extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.datepicker);

// 具体的应用可参见对话框中的示例 setTitle(“DatePicker”);} }

2、TimePicker 的 Demo timepicker.xml

代码

android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>

android:layout_width=“wrap_content” android:layout_height=“wrap_content”

android:textOn=“关闭” android:textOff=“打开” />

_ToggleButton.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.ToggleButton;

public class _ToggleButton extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.togglebutton);

setTitle(“ToggleButton”);

final ToggleButton btn =(ToggleButton)this.findViewById(R.id.toggleButton);// setOnClickListener()双状态按钮的按钮状态 txt.setText(“按钮状态:” + String.valueOf(btn.isChecked()));} });} }

4、EditText 的 Demo edittext.xml 代码

android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>

style=“?android:attr/progressBarStyleLarge” android:layout_width=“wrap_content”

android:layout_height=“wrap_content” />

android:layout_width=“wrap_content” android:layout_height=“wrap_content” />

style=“?android:attr/progressBarStyleSmall” android:layout_width=“wrap_content”

android:layout_height=“wrap_content” />

style=“?android:attr/progressBarStyleHorizontal” android:layout_width=“200px”

android:layout_height=“wrap_content” android:max=“100” android:progress=“50” android:secondaryProgress=“75” />

_ProgressBar.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;import android.view.Window;

// 另见对话框中的进度条

public class _ProgressBar extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);

// 设置特性以允许在应用程序的标题栏上显示进度条(条状)requestWindowFeature(Window.FEATURE_PROGRESS);// 设置特性以允许在应用程序的标题栏上显示进度条(圆圈状)requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

this.setContentView(R.layout.progressbar);

setTitle(“ProgressBar”);

// 在标题栏上显示进度条(条状)setProgressBarVisibility(true);// 在标题栏上显示进度条(圆圈状)

setProgressBarIndeterminateVisibility(true);

// 指定进度条的进度 setProgress(50 * 100);setSecondaryProgress(75 * 100);

} }

6、SeekBar 的 Demo seekbar.xml 代码

android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>

android:layout_height=“wrap_content” android:max=“100” android:progress=“50” android:secondaryProgress=“75” />

android:layout_height=“wrap_content” />

android:layout_height=“wrap_content” />

_SeekBar.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;import android.widget.SeekBar;import android.widget.TextView;

public class _SeekBar extends Activity implements

SeekBar.OnSeekBarChangeListener {

SeekBar mSeekBar;TextView mProgressText;TextView mTrackingText;

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.seekbar);

setTitle(“SeekBar”);

mSeekBar =(SeekBar)findViewById(R.id.seekBar);// setOnSeekBarChangeListener()-响应拖动进度条事件 mSeekBar.setOnSeekBarChangeListener(this);

mProgressText =(TextView)findViewById(R.id.progress);mTrackingText =(TextView)findViewById(R.id.tracking);}

// 拖动进度条后,进度发生改变时的回调事件

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch){ mProgressText.setText(progress + “%”);}

// 拖动进度条前开始跟踪触摸

public void onStartTrackingTouch(SeekBar seekBar){ mTrackingText.setText(“开始跟踪触摸”);}

// 拖动进度条后停止跟踪触摸

public void onStopTrackingTouch(SeekBar seekBar){ mTrackingText.setText(“停止跟踪触摸”);} }

7、AutoCompleteTextView 的 Demo autocompletetextview.xml 代码

第三篇:Android学习总结

Android学习总结

零零碎碎的总结:

1.客户端的功能逻辑不难,UI界面也不难,但写UI花的时间是写功能逻辑的两倍.2.写代码前的思考过程非常重要,即使在简单的功能,也需要在本子上把该功能的运行过程写出来.3.要有自己的知识库,可以是一个工具类,把写过的,看过的好的代码放进去,也可以是一个笔记本软件.因为只有放在知识库里的东西,才是你最重要的财富.4.如果你想做自由职业者,你需要学英语,因为在国外的盈利比国内多很多.如果你想进大公司,好公司,你需要学英语.你想深入学习android,但中文的android文章太少了,你查查百度,到处都是copy来copy去的hellword,所以,你需要学英语.如果你想出国,你需要学英语.5.Http协议要研究透彻.http的信息头有什么信息,分别代表什么,信息体有什么信息,代表什么,都要搞的明明白白.scoket也是一样.6.在eclipse里的layout文件都有graphical Layout.通过这个好好的把UI调整好.7.Android里的junit每次运行都会打包新的apk到设备上跑.效率非常慢.如果是跟android无关的测试,最好自己建立一个单纯的java项目做测试.8.面试的时候不要觉得自己提的薪水太高,物以稀为贵明白吗?不管你的期望薪资多少,都有可能实现,这只是时间问题.9.如果一家小公司通过猎头找到你,即使公司在小,也比外面那些40,50人的公司还要好.不要觉得公司不行,担心会倒闭.放心吧,至少活1年是没问题的.10.不要把自己绑在android上,有空也研究下IOS(最近小弟就准备研究ios,刚买了6本书...).11.移动互联网最少还有10年的快速增长.android最少还有两年的快速增长.走android这条路是不会错的.12.有空多学点开放平台的SDK.比如新浪微博,腾讯微博,淘宝平台,支付宝移动支付平台,快钱移动支付平台等等..这些都是不愁没市场的.13.即使技术再差,也要发布一个应用到market上去.因为这样你才了解做一个应用的逻辑.14.每个月拿到薪水省500-1000元出来.这些钱投在买学习资料,去培训班上课...在培训班,花再多的钱也是值得的.15.你真正的价值在项目经验和对底层的认识上.不要忽略基础知识.16.如果有空把Android的源代码看一下.底层的东西很枯燥,但这些很值得学.17..程序员其实是艺术家.代码重构和设计模式,是非常非常重要的东西,必须要学

18.不要去维护一个项目,要去做一个项目.19.一开始不要轻易去大公司,虽然大公司是可以让你呆一辈子的.但你的起点低,以后成就也低.20:每天早上提前20分钟上班,5分钟把今天的工作计划写好.15分钟用来看各大It论坛的新闻.21:如果以前没做过java,那就把SSH看下,自己搭建一个小服务器.这是为了接私活用.22:PS一定要学,接私活用.23:多下载市面上好的应用,每天都用,只有这样你才能了解市场.现在所有的APK都可以反编译,看源代码麻烦,但看layout和图片很容易,所以....你懂的.24.要有羞耻心.25.老板仅仅要求你把东西做完,需求完成.但你必须对自己要更严格一点.写一段代码,从网上复制一份代码,并不是可以用就行了,你还必须明白他的原理,为什么这样就可以?这才是对你最有用的地方,这也是你今后薪资增长的保证.26.要懂得舍得.移动领域发展太快,必要时必须要用钱换时间.不然你会远远落后别人(我之前花了4000大洋去培训班学IOS三天).27.要明白自己想要什么,什么才能最大性价比提高你的能力.对我来说,能让我提高最大的,就是Android和IOS同时会,并且自己可以做架构设计.28.看android技术书籍最快的学习方法,先通读一次.然后把书本上的demo一个一个写出来.不要觉得太容易不去写.很多东西都是这样,看起来简单,但做起来难.最后再对照自己写出来的程序代码去理解书本的意思.29.应用和游戏是2个方向,没有一个公司会同时做游戏又做应用,即使是外包公司,大多也只做一块.专精一个就可以了.30.每次做完一个项目,要强迫自己做总结,通过这个项目,我学到了什么新技术?犯了哪些

SB错误?

31.一家小公司,如果有正式财务部,那肯定是正规的,不要担心欠薪问题.如果没有,就说不准了.bbs.12580life.com

第四篇:黑马程序员android开发笔记(一)

01、什么是3G 02、android系统简介 03、android背景介绍 04、android的framewor简介 05、两种虚拟机的比较 06、sdk的下载以及简介 07、创建android模拟器 08、ddms简介

09、platform-tools的简介及常见adb指令

10、android项目的目录结构

11、android下apk安装的过程

12、常见的adb指令介绍

13、创建模拟器遇到的常见错误

14、电话拨号器

15、点击事件的四种写法

16、短信发送器

17、相对布局&单位介绍

18、现形布局&布局的组合

19、表格布局&绝对布局 20、帧布局

21、测试相关概念

22、android下junit测试框架配置

23、logcat简介

24、保存文件到手机内存

25、android下文件访问的权限

26、保存文件到SD卡中

27、分析setting源代码获取SD卡大小

28、_sharePreference入门

29、xml文件的序列化 30、采用pull解析xml文件

31、采用断电调试的方法观察pull解析的的流程

32、android下创建一个sqllite数据库

33、sql语句实现数据库的增删改查

34、系统api实现数据库的增删改查&Sqlite3工具的使用

35、数据库的事物

36、listView入门

37、采用layoutInflater打气筒创建一个view对象

38、采用数据适配器ArryAdapter

39、常用数据适配器simpleAdapter 40、数据适配器总结

41、内容提供者简介

42、内容提供者的实现

43、短信的备份

44、插入一条记录到系统短信应用

45、内容观察者

46、获取系统的联系人信息

47、保存联系人到系统通讯录

48、读取联系人的一个小细节

49、网络图片查看器

50、anr产生的原理&如何避免

51、android消息机制入门

52、网络html查看器

53、字符乱码问题的处理

54、采用get方式提交数据到服务器

55、采用post方式提交数据到服务器

56、提交数据到服务器中文乱码问题的处理

57、采用httpclient提交数据到服务器

58、异步http框架简介&实现原理

59、异步http框架提交数据到服务器 60、上传文件到服务器

61、smartimageview&常见开源代码 62、多线程下载的原理 63、多线程断点下载的原理

64、多线程java代码移植到android 65、多线程下载文本页面的更新 66、显示意图激活另一个activity 67、隐式意图激活另一个activity 68、隐式意图的配置

69、隐式意图和显示意图的使用场景 70、在不同activity之间数据传递 71、activity的声明周期 72、activity的启动模式

73、activity横竖屏切换的声明周期 74、开启新的activity获取他的返回值 75、请求码和结果码的作用 76、利用广播实现ip拨号 77、短信窃听器

78、自定义广播时间&发送自定义广播&广播接受者优先级 79、采用服务执行长期后台操作 80、采用服务窃听电话&服务的声明周期 81、android进程优先级&为什么使用服务 82、绑定方式开启服务&调用服务的方法 83、服务的声明周期(混合开启 84、采用aidl绑定远程服务

85、代码注册广播接受者&利用广播调用服务的办法 86、加载大图片到内存 87、获取图片exif信息 88、从gallery获取图片 89、图片画画板 90、扒开美女衣服 91、图片的缩放 92、图片的旋转

93、图片的平移&镜面&倒影效果 94、图片的合成 95、图片的颜色处理 96、多媒体播放api简介 97、人脸识别

98、mediaplayer的生命周期 99、soundpoo简介

100、sufaceview的生命周期 101、播放在线视频

102、视频播放器进度的处理 103、调用系统照相机拍照和录像 104、采用camera拍照 105、常见对话框 106、notification入门 107、菜单

108、android下的样式 109、android下的主题

110、代码编写ui 111、html创建ui 112、帧动画

113、代码创建创建的tween动画 114、xml文件定义动画 115、传感器简介 116、117、杀死进程 118、apk的安装 119、应用程序的反编译 120、动态创建fragment 121、用fragment创建一个选项卡 122、fragment的向下兼容性 123、fragment的生命周期 124、fragment之间的通讯 125、应用程序国际化

04、android的framewor简介

Wap:wait and play Wireless Makeup Language(WML)精简的html语言 Applications:android自带的基本上层应用 Aplication framework:应用程序框架 Librarics: Linux lernel:

05、两种虚拟机的比较

编译后文件格式:

jvm:.java->.class->.jar dalvik vm:.java->.dex->.odex 基于的架构:

jvm:基于栈的架构

dalvik vm:基于寄存器的架构

Cpu直接访问寄存器因此dalvik虚拟机的效率比jvm高

06、sdk的下载以及简介

->获取sdk工具包(sdk:standard develope kits)->ADT(android develop tools,实际上是eclipse的插件)SDK具体内容

Android 4.2.2(API16)

->SDK Plateform:开发时使用到的jar包->Samples for sdk:

->ARM EABI V7a System Image:模拟器运行时的镜像->Intel n86 Aton System:模拟器运行时的镜像->MIPS System Image:模拟器运行时的镜像->google APIs:google提供的jar包,可以直接使用google提供的一些API->source for android SDK:SDK全部的源代码 Extrals:

->tools:开发的工具

->support library:实现高版本的android向下的兼容->google Admed Ads SDK:gongle提供的广告插件->Analyties App Irackiong SDK:应用的用户分析->cloud message:云消息

->gongle play service:收费服务

->google USB Driver:真实的设备驱动

开发时:基于4.0,兼容2.2、2.3.3

07、创建android模拟器

avd:android virture developer VGA:480*640(电视的标准分辨率)QVGA:240*320(四分之一)HVGA:320*480(一半)WVGA:480*800(width)FWVGA:480*854(更宽)

08、ddms简介

ddms:模拟器不支持中文,因此发送中文会显示不出来

09、platform-tools的简介及常见adb指令

Android调试桥:内部实现就是socket让两个系统之间实现数据交互

->reset adb:模拟器找不到时候可以重启->adb device:列出所有的连接的设备->adb kill-server:杀死adb调试桥->adb start-server 启动adb调试桥 dx.bat:将.class文件打包

10、android项目的目录结构

一:SDK的目录结构

->Samples->Api demo:根据API demo(模拟器上面可以看见)的效果可以在sample中看见

相应的代码

->Source:jar包所有的sdk源代码都在这个文件夹里->SystemImage:系统镜像

->temp:下载更新临时存储的文件夹,一般是空的->tools:emulater.ext 不同版本的模拟器

二:New Android Application->theme:留给以后作为扩展,现在并没有太大的作用->target SDK:一般选择高版本,因为高版本对下兼容

->mark project as a library:一般不选择,意思是将这个项目提供一个

jar包供别人使用 三:文件夹目录

.setting:设置目录

assets:资产目录,存放一些文件,这些文件会被原封不动打包到应用程序的 apk中

bin:

gen:自动生成的目录

->builderConfig.java:生成的配置信息->R.java: Android 4.1.2->android.jar开发环境,jar包

可以在properties中修改,jar包就是SDK

011、Android下apk的安装过程

一、Android安装过程分析:

->setContentView:甚至view的对象,把里面的xml文件加载到

->在project中选择build automaticly会自动把文件生成字节码文件,.class $代表的class文件生成的是内部类->dex.bat文件会把.class文件生成.dex文件

->apk压缩文件解压内部内容

->META-INF: 应用程序的签名

eclipse的调试签名文件

->res:资源文件

->classes.dex:class文件

->resources.arsc:资源ID映射

->android软件安装的过程:

->拷贝xxx.apk带/data/app/xxx-1.apk->在/data/data目录下创建一个文件夹,文件夹名称当前应用程序的报名

012、常见adb指令

前提:

->设备连接上电脑而且驱动安装正常,如果安装不正常的话,会有黄色的问号显示;

->设备上打开USB调试;

指令:

->adb device(如果启动发现这个程序没有安装会自动安装)->adb kill-server->adb start-server->adb uninstall <包名>->adb-s emulator-5554 install c:usersadministratorhello.apk 如果有多个设备的话,如果不指定安装的是哪个设备程序会报错->adb push haha.prop /sdcard/haha.txt 将文件移到

(360管家,豌豆荚之类的软件他们也是用的adb指令,倘若电脑上装这些软件的话,会因为两个adb指令抢端口号而挂掉)(adb版本之间兼容不是很好,经常报错可以考虑下版本的问题)->adb shell:远程连接到了android的linux终端

ls:显示文件夹

ps:显示正在运行的程序 ping:网络连通性

013、创建模拟器遇到的常见错误

->路径最好不要有中文:

->应用安装不上,或者安装模拟器的时候开启一个新的模拟器:

可能是模拟器的资源被占用,模拟器在运行的时候其实占用着硬盘上面的一个文件,这个文件位于工作空间.android/avd/iphone.avd 里面会有镜像文件,当一个模拟器开启起来了,就给你创建一个文件夹.knock的文件夹,代表着这个模拟器被锁定了,如果把模拟器关掉,就没有程序占据这几个镜像资源了,那么这几个程序就会被自动删除。通常情况下不会出问题,开启时候创建文件,关闭时关闭文件,但是当电脑出现不正常状态时:比如蓝屏,停电关机时候这些资源还没来得及删除,模拟器就关闭了,因此开启时这些资源仍在,程序默认模拟器被占用,因此会重新开启一个模拟器。

->模拟器没有信号:

模拟器用socket桥接在电脑上

终结解决方案是给电脑连上网,分配一个IP->常见命令操作:

14、电话拨号器

->新建文件

->界面设置:文本框、点击按钮

->:一旦获得焦点,会立刻弹出,输入文本的软键盘->ctrl+x删除->ctrl+1提示

->设置点击事件:找到空间,然后设置点击事件,再点击事件里面获得了另外一

个空间的数据,激活一个intent->获得权限:清单文件中添加uses permision

15、点击事件的四种写法

->电话拨号器的优化:

每次拨打电话都会执行的操作是:查找控件,然后找到控件的文本,拨打电

话。其实每次拨打电话文本控件已经创建好了没有必要每次查找按钮之后再 查询控件。

package cn.wqrt.mobile;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

public class MainActivity extends Activity {

private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);button.setOnClickListener(new MyListener());}

private class MyListener implementsandroid.view.View.OnClickListener{

@Override

public void onClick(View arg0){

String number = et_number.getText().toString().trim();//去除回车和空格

if(TextUtils.isEmpty(number)){

Toast.makeText(MainActivity.this, “号码不能为空”, Toast.LENGTH_SHORT).show();

return;

}

Intent intent = new Intent();

intent.setAction(intent.ACTION_CALL);

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

startActivity(intent);

}

}

@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;} }

->

1、点击事件的四种写法:

->给按钮注册点击事件:创建一个内部类定义点击事件。具体代码见上

button.setOnClickListener(new MyListener());

->

2、采用匿名内部类创建点击事件:

button.setOnClickListener(new OnClickListener()){

package cn.wqrt.mobile;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

public class MainActivity extends Activity {

private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);button.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View arg0){

// TODO 自动生成的方法存根

callPhone();

}

});}

@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;}

private void callPhone(){

String number = et_number.getText().toString().trim();//去除回车和空格

if(TextUtils.isEmpty(number)){

Toast.makeText(MainActivity.this, “号码不能为空”, Toast.LENGTH_SHORT).show();

return;

}

Intent intent = new Intent();

intent.setAction(intent.ACTION_CALL);

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

startActivity(intent);} } }

->

3、如果有很多的按钮点击事件,建议用这种方式:让Activity实现点击 事件的接口,每个按钮点击事件都设置成this,让该类实现 OnClickListener然后进行判断。package cn.wqrt.mobile;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);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;}

private void callPhone(){

String number = et_number.getText().toString().trim();//去除回车和空格

if(TextUtils.isEmpty(number)){

Toast.makeText(MainActivity.this, “号码不能为空”, Toast.LENGTH_SHORT).show();

return;

}

Intent intent = new Intent();

intent.setAction(intent.ACTION_CALL);

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

startActivity(intent);}

@Override public void onClick(View v){

// TODO 自动生成的方法存根

switch(v.getId()){

case R.id.bt_dial:

callPhone();

break;

} } }->

4、在布局文件中绑定一个点击的方法,如果点击按钮就会调用这个方法,通

过反射技术试图调用这个方法

布局文件中设置: package cn.wqrt.mobile;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

public class MainActivity extends Activity {

private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);

}

@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;}

public void dialButtonClick(View v){ callPhone();}

private void callPhone(){

String number = et_number.getText().toString().trim();//去除回车和空格

if(TextUtils.isEmpty(number)){

Toast.makeText(MainActivity.this, “号码不能为空”, Toast.LENGTH_SHORT).show();

return;

}

Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);

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

startActivity(intent);} }

16、短信发送器

->界面的设计:两个large Text,一个Button

android:textColor 设置字体颜色

android:singleLine=“true” 设置是否是单行

android:lines=“5” 设置行数

windows下面的颜色是GBR,而android下需要输入的格式确实

RGB,所以需要转换

adb默认设置time out为5秒->内容设计:按钮-文本->判断->发送

导包的时候千万别导到gsm包,否则会显示过时;

发送没有历史记录 package com.example.sms;

import java.util.ArrayList;

import android.app.Activity;import android.os.Bundle;import android.telephony.SmsManager;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

private EditText et_number;private EditText et_content;

@Override protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button button =(Button)findViewById(R.id.bt_send);

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

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

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){

// TODO 自动生成的方法存根

switch(v.getId()){

case R.id.bt_send:

String number = et_number.getText().toString().trim();

String content = et_content.getText().toString().trim();

if(TextUtils.isEmpty(number)||TextUtils.isEmpty(content)){

Toast.makeText(this, “号码或者内容不能为空”,Toast.LENGTH_SHORT).show();

return;

}else{

SmsManager smsManager = SmsManager.getDefault();

ArrayList contents = smsManager.divideMessage(content);

for(String str:contents){

smsManager.sendTextMessage(number, null, str, null, null);

}

}

} } }

17、相对布局&单位介绍

->布局说明:

->同级控件:

android:layout_toRightOf=“" android:layout_toLeftOf=”“ android:layout_below=”' android:layout_above=“" android:layout_maginBottom=”“

->相对父控件:

android:ayout_centerInParent=”“ android: layout_centerHorizontal=”“ android:layout_centerVertical=”“ android:layout_alignParentBottom=”“ android:layout_alignParentRight=”“->对齐方式:

->文本颜色:#00000000~#ff000000(argb)文字的透明度->单位介绍:

dp也就是dip:device independent pixels(设备独立像素),是一种与密度无关的像素单位,在每英寸160点的屏幕上,1dp = 1px。不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素

1.

下载Pro,Android学习笔记(一七一):说最后x[本站推荐]word格式文档
下载Pro,Android学习笔记(一七一):说最后x[本站推荐].doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    Android的学习总结

    Android学习总结 Android的学习总结 现在对于Android的学习已有斗个学期了,但它对我来说其实还是一个大大的谜,还有待我去对它一一揭晓。 在还没有学习Android这门课之前,当听......

    李强说管理 笔记

    管理者一定要是问题的终结者要从管理者变成领导者。 要有威权,而不是权威。管理者的职责: 1、领导的高参 2、工作的落实者和监督者 3、汇报工作,是必须要具备的素质:必须要具备......

    马说笔记整理

    马说 1.韩愈,字退之,唐代文学家,散文尤其著名,有“文起八代之衰”的美誉,有《昌黎先生文集》。被列为“唐宋八大家”之首,与柳宗元并称 韩 柳2.解释加点的词语在文中的意思。 1世有......

    Android BroadcastReceiver学习总结(五篇)

    Android BroadcastReceiver学习总结 BroadCast(广播),概念:一种在系统内进行通信的机制.通过这种机制,它能够将系统中的某个进程的信息或者意图传递到其他的对这些信息或者意......

    Android开发工程师学习路线

    Android开发工程师学习路线:手机产品开发要从基础开发知识做起Android开发工程师学习路线图:想要做好手机产品开发要先从基础开发知识做起,要学好基础语言开发,即java语言开发,然......

    Android 学习总结1(范文)

    1应用程序配置全屏 应用程序配置全屏: 【bug】 但是系统提示的是: android:style/Theme_NoTitleBar_Fullscreen ——错误的配置 Android的bug。去掉标题栏: android:theme="@a......

    Android学习总结 20110325专题

    Android学习总结 在这段时间主要对Android平台有了一定的了解,对一些简单的设计也有了一定的掌握Android概念 Android是一个基于Linux核心的开放手持设备(主要是手机)平台操作......

    Android应用程序设计学习总结

    学习总结 Android具有开放性。有一下平台优势: 一、开放性 在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以......