本文目录一览:
- 1、如何从零开始写一个Android安卓App?
- 2、Android开发教程是怎样的?
- 3、安卓开发教程
- 4、android软件开发android软件开发教程第二版电子版
- 5、安卓开发的入门书籍大家推荐几本?
- 6、Android,Studio教程从入门到精通 Android从入门到精通
- 7、谁有好的安卓开发教程推荐_安卓开发需要学哪些东西
- 8、移动开发基础教程:Android是什么 安卓开发
- 9、安卓开发线程和进程讲解
如何从零开始写一个Android安卓App?
地球上最流行的移动操作系统,非苹果公司的iOS与谷歌公司的Android系统莫属了,那如何写出自己的第一个App,并且能够跑在iOS与Android系统上呢?
FinClipAndroid研发工程师为大家带来Android篇~如果需要了解iOS也可点击iOS篇。
与开发iOS应用的逻辑基本一致,开发Android应用也需要以下5步:
开发工具安装和配置搭建开发环境在AndroidStudio中,创建第一个项目完成简单Helloworld代码编写编译APK文件,让应用在手机上跑起来0X00开发工具安装和配置第一步,需要先在Android官网下载AndroidStudio(直接点击传送门进入下载链接),如果不会科学上网的话,也可以在国内镜像下载。
但想成为专业的安卓研发,还是要学会科学上网同意协议后选择自己的机型在这里可以根据你的电脑型号(浏览器会自动根据机型推荐链接,比如我的就是Intel芯片的MacBook)下载安装包,在下载完成后双击跟着提示一步一步完成安装就行了。
0X01搭建开发环境与Xcode不同,我们还需要在正式编写Android应用前,配置本地的开发环境。
第一步,安装JDK8
首先需要安装JDK8,JDK就是研发Android应用的官方环境,点击这里下载(我的链接也是适用于Mac电脑,如果你的电脑不一样需要切换一下)。
在第二个箭头处,可以切换不同的操作系统下载完成后,双击下载好的jdk-8u311-macosx-x64.dmg,单击接受许可协议后,在新出现的“安装类型窗口”中,点击“安装”。
此时会出现一个窗口,显示“安装程序正在尝试安装新软件。输入您的密码以允许此操作”。
所以我们需要再输入管理员密码之后,再次点击“安装软件”。等到显示确认窗口之后,即可完成安装。
第二步,配置JDK环境
在第一步中,我们只是把JDK1.8的文件复制到操作系统上。但还需要让其他应用知道JDK1.8环境存在的具体位置,因此我们还需要配置系统的环境变量。
但首先,我们自己得先知道JDK目录安装在哪里,按照下面的路径我们可以找到JDK的主目录,如下图所示:
JDK安装目录/Library/Java/JavaVirtualMachines也就是说,JDK的真实目录在这里/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home,
既然知道了JDK的安装目录,那就让我们打开终端(同时按住键盘上的command和空格,并在之后的弹框中输入terminal.app后敲击回车)开始配置:
vi~/.zshrcorvi~/.bash_profile在文件的末尾加入这一行语句:
exportJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home然后用source命令更新环境配置
source~/.zshrcorsource~/.bash_profile配置完毕后,我们就可以验证Java环境配置是否正确了,依然在终端中输入
java-version如果正确显示出了版本号,就代表配置成功了0X02在AndroidStudio中,创建第一个项目打开AndroidStudio,AndroidStudio第一次打开需要下载AndroidSDK和Gradle等工具包,所以第一次打开可能比较慢(合理科学上网会快一些),AndroidStudio准备好后,开始创建第一个项目。
第一步,新建项目
点击界面中的NewProject选择中间的空模板EmptyActivity在这里输入项目信息之后,点击Finish就可以完成项目的创建了。
0X03完成简单Helloworld代码编写首先让我们认识Android应用的项目文件结构:
Android的页面是由一个个Activity组成的,页面主要分为UI布局部分和逻辑处理部分,UI布局部分需要由上图中蓝色main目录下的activity_main.xml文件处理,而逻辑部分则是由com.myname.myapplication中的MainActivity文件处理。
所以我们也需要修改UI布局与逻辑2个文件,首先编辑activity_main.xml:
packagecom.myname.myapplicationimportandroidx.appcompat.app.AppCompatActivityimportandroid.os.Bundleimportandroid.widget.Buttonimportandroid.widget.ToastclassMainActivity:AppCompatActivity(){overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)this.findViewById
Android开发教程是怎样的?
参加Android开发培训的同学都会先了解Android开发教程是怎样的,下面介绍Android开发要学习并掌握的知识有:Java基础、Linux基础、数据库基础、网络协议、Android基础、服务器端开发等。北大青鸟http://www.kmbdqn.cn/认为最重要的是最后的项目实训。
Java基础
零基础自学的同学刚开始一定会觉得Android开发当然要先从Android开始学习。然而,并不是这样的。Android开发基础是Java,所以Java基础一定要打扎实,才能更好地进一步学习。Java需要掌握的知识有:Java基础语法及设计模式。
Linux基础
Android系统以Linux系统为基础。开发过程中,要用到某些Linux命令,因此要掌握Linux基础。
数据库基础学起来就很简单了;接着是网络协议,HTTP协议和Socket协议是必须掌握的;然后是Android基础。
服务器端开发
大多Android应用都需要服务器端的支持,因此服务器端开发内容也是必须要掌握的。服务器端分为很多种类:
1.JavaEE:优点是功能完整、强大。
2.PHP:简单易学,开发快速。
3.NET:特点与JavaEE类似。
4.rubyonrails:简洁,优雅是它的优点。寥寥几行代码,即能够实现非常复杂的功能,不过要有Ruby语言基础才行。
项目实训
为什么建议大家参加Android开发培训,而不是自学,自学能做项目吗,不可能!Android开发培训老师一定会带着做几个项目,团队协作,几类项目经验,这是自学学不来的,项目实训非常重要。
安卓开发教程
1、安卓开发书籍:学习安卓,可以选择报培训班,也可以选择看视频,也可以去请求高手。但是如果手中拥有一本好的安卓开发书籍,往往可以起到事半功倍的作用。2、安卓开发必知的一些开源库:现在,安卓开发已经逐渐成熟。在安卓开发过程中,选择开源库,需要根据APP。不过无论出现多少安卓开发工具,开源库的重要性都是不言而喻。为大家精选的安卓开发开源库,主要包括Volley、ActiveAndroid、ActiveAndroid_Android轻量级ORM框架等。3、安卓兼容库:Android兼容库很多,主要包括ActionBarSherlock、ActionBarCompact、NineOldAndroids、AndroidSupportV4、NavigationDrawer等。4、翻墙/教程:安卓开发需要的资源很多,为大家精选了基本教程,主要有教程GoogleAndroid官方教程、Android教程、Android视频学习推荐、解析Android架构设计原则等。5、安卓基础:安卓基础知识,主要有Android四大基本组件介绍与生命周期、ListView的基本使用与优化、Android系统用于Activity的标准Intent、Android屏幕适配、Android中SQLite应用详解、AndroidFragment完全解析等。6、开发环境:大家都知道,安卓开发之前,第一步就是搭建环境。开发环境所需要的资料、软件、教程。7、安卓中级:上面的资源都熟悉之后,你将进入安卓开发中级阶段。安卓开发中级,需要了解的哟安卓应用程序的生命周期、安卓布局优化、androidservice完全解析等。8、安卓设计/进阶/开源项目:为了开发者快速了解当前一些流行的Android开源库,精选了GitHub排名前100名的安卓项目、Android个性化控件(View)开源项目等。
android软件开发android软件开发教程第二版电子版
1、做安卓软件开发需要哪些工具?2、Android手机软件开发能做什么?求解答3、Android软件开发主要是学习什么的?4、北大青鸟java培训:Android软件开发前景怎么样?5、安卓Android软件开发用什么语言?做安卓软件开发需要哪些工具?android是基于linux的,所以在ubuntu下是最好的。当然windows下面也是可以的。但是android的内核是基于linux的,并且通过终端进行各种操作,非常强大,也比cmd方便。大致开发的环境是这样:ubuntu系统,以前是windows然后安装了ubuntu的虚拟机。android大部分的开发都是中间层到顶层的应用开发,所以基本上是java开发。表配如下:1eclipse是开发java必备,也是android必备。(当然前提是先安装JDK1.6)2下载android的SDK和ADT。这是android的开发必须的工具,adb、ddms、mksdcard、aapt,debug 必备A安装完eclipse后,通过help=〉install new software把ADT安装好B然后window=preference设置好SDK的路径即可如果用到C开发的话,可以安装一下CDT现在可以通过AVD manager安装一下自己想在哪个平台下的api,比如:android2.3.4,就可以建一个2.3.4的emulator,把模拟器跑起来。通过adb ddms 等工具察看、开发了。为了方便,把adb的路径加到环境变量里。
Android手机软件开发能做什么?求解答Android手机软件开发能做什么?求解答 Android手机系统的一个很大的优势在于其开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。 Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。从下面列出的开放手机联盟成员可以看出其强大的实力: 开放手机联盟成员: 一、手机制造商: 1、 诺基亚 2、 三星 3、 摩托罗拉 4、 HTC 5、 索尼爱立信 6、 RIM 7、 LG 8、 BlackBerry 9、 苹果 10、 中兴 二、半导体公司: 半导体: 1、 中芯国际 2、 台积电 3、 大连英特尔 4、 苏州和舰 5、 宏力 6、 华虹 7、 华力 8、 成都德州仪器 9、 厦门集顺 10、宁波比亚迪 三、:软件公司 1、 华为技术有限公司 2、 中兴通讯股份有限公司 3、 海尔集团公司 4、 神州数码(中国)有限公司 5、 浙大网新科技股份有限公司 6、 熊猫电子集团有限公司 7、 北京北大方正集团公司 8、 同方股份有限公司 9、 上海贝尔阿尔卡特股份有限公司 10、 浪潮集团有限公司 Android同时也获得了大量开发者的支持。据Google称,在其推出后的两个月内,程序员下载这个软件开发平台的次数已经高达250000多次。尽管在如 此庞大的下载数量中只有一小部分开发者真正开始编写实际的应用程序,但我们却由此可以看出惊人的开发商兴趣。相比之下,在Symbian操作系统推出一年 后,其操作指南的下载次数只有70000次左右。 HTC CEO周永明(Peter Chou)称,基于Google Android平台的T-MobileG1手机有望在今年底达到100万部的出货量,而此前预计的数量只有60万部。看起来“Google手机”尽管宣传比较低调,但实际卖得还不错,前景也被人看好。 Android在中国,你必须要了解的 作为开放手机联盟的初始成员,中国移动早在去年就开始招兵买马,开发自己的Android手机。另外,各山寨厂商也在大力进行Android的移植工作,更有所谓的首款中文Android手机琦基i6已经曝光。 广州北大青鸟广力校区院校地址: 广州市越秀区童心路西胜街42号5号楼(广州青少年科技馆、广州科学技术协会内)。怎么学习安卓Android手机软件开发 Android应用呈现给用户最多的是界面,所以界面是否美观是用户会不会选择去用的一个重要因素。对于工程师来说,如何提高自己的审美,进而把自己对美的理解融入到应用当中是很重要的。如果你对安卓可发有兴趣的话,可以来武汉四 维梦-工场了解学习没有基础能学android手机软件开发吗? 没基础得先入门,编程这东西速成不行,得从java小程序做起,包括安装jdk,jre这些,零基础可以学习Java基础开始,逐步向开发项目进阶。最快的方法还是去参加android开发培训,可以零基础学,培训四个月的时间就可以了。谁告诉我下,android手机软件开发,如何啊? 华夏博大3G学院,都反映挺好的,那里的老师有这方面的开发经验。具备着线上的真实应用,就业了之后再付 款。怎么招聘一批android手机软件开发的人呢? 个人理解是 对于需要做自己的android客户端的企业来说 没有必要非要要求这个客户端一定要实现盈利~ 比如金蝶随手记 它更大的作用就是提高品牌知名度和培养用户习惯罢.就好象adobe 为了培养用户习惯和品牌知名度 故意在反盗版上面做得不是那么好.学android的手机软件开发 怎么样 有前途,自学看这个:mars-droid./我一直在看,有不懂得可以在论坛提问手机软件开发做功能需求时要注意什么?天瑞地安的手机软件开发怎么样? 一般是注意开发的水平能力怎么样, 有没有成功案例, 开发的app后期发现BUG怎么处理, 版本怎么升级等等, 手机APP开发, 需要可以@我金华有android手机软件开发培训的地方吗? "给大家讲一个真实的故事吧,在经历一场意外车祸后,我错过了应届生就业的最佳时期。因为一直期望能从事嵌入式行业,而该行的起点要求比较高,公司一般都不招应届生,只取有工作经验的职业人士或是有培训经验的基础技术人员。所以在术后休养一年身体有所好转的情况下,我选择了动力节点或王勇java,这四个月的学习期间,我不仅巩固了软件开发的语言基础部分,更弥补了大学课堂应试教育的不足之处。因为在培训期间,虽然多半是视频教学,但是,一边听课一边敲代码的学习模式,不仅加深了课堂理解而且强化了动手动脑的能力。在此,向动力节点或王勇java所有给过我帮助的老师和同学致以真切的谢意!Y"android手机软件开发中 怎么连接Mysql数据库 一、首先要加载JDBC驱动包。步骤:右击项目找到build path-configure build path-libraries——add External JARs添加驱动包二、写测试类:TestCon.java(在此之前,首先1.在自己的电脑上Mysql下确定账户是"root",密码是"123456";2.进入账户,创建数据库cui;3.在数据库cui下面,创建表test1 包含_id(int 类型自动增加) username(String 类型)、password(String 类型);4.在表中插入数据,以便显示)1 package .test.an;23 import java.sql.Connection;4 import java.sql.DriverManager;5 import java.sql.PreparedStatement;6 import java.sql.ResultSet;7 import java.sql.SQLException;8910 public class TestCon1{11 public static void main(String[] args)12 {13 Connection con = null;14 String sql;15 PreparedStatement pre;16 ResultSet rs;1718 try {19 String driver=".mysql.jdbc.Driver";20 Class.forName(driver);2122 String url="jdbc:mysql:localhost:3306/cuiuseUnicode=truecharacterEncoding=latin1";utf-8也行23 con = DriverManager.getConnection(url, "root", "123456");2425 sql = "select _id,username,password from test1" ;26 pre = con.prepareStatement(sql);2728 rs = pre.executeQuery();29 while(rs.next()){30 int id = rs.getInt(1);31 String username = rs.getString(2);32 String password = rs.getString(3);3334 System.out.println("id="+id+";username="+username+";password="+password);35 }36 con.close();37 } catch (SQLException e) {38 e.printStackTrace();39 } catch (ClassNotFoundException e) {40 e.printStackTrace();41 }4243 }4445 }运行结果:id=1;username=c;password=123456id=2;username=xxx;password=654321id=3;username=ddd;password=123456id=4;username=ddf÷;password=yytid=5;username=cuixiaodong;password=cxdid=6;username=vv;password=cxd手机软件开发难学吗 手机软件开发,技术含量很高。 只有接受好的教育,有好的学习态度才会不难Android软件开发主要是学习什么的?近半年来android软件开发,手机的安卓系统与ios系统是目前主流的手机系统,Android软件开发主要是学习什么的?IT培训发现安卓开发的技术很多的,如果想一次性学好是不实际的,但下面这些基础还是要学好的。1、Activity生命周期虽然Android中有四大组件,但是不可否认Activity是最常用的。所以熟练掌握Android的生命周期是必须的。其实生命周期就是记住Activity的那些方法在什么时候被系统调用,这样才可以把对应的逻辑代码写到合适的方法内部去。至于服务和广播组件可以稍微缓一下,到实际使用的时候再学习都可以。2、界面开发技术界面开发是一种基本的技术,几乎所有的程序里面都需要用到。在Android开发中界面开发分为3种:1)使用xml文件布局使用xml首先对于界面进行布局,然后在Activity里面进行引用是最常见的应用软件开发技术,这种方式使用的最大,需要学习的内容也最多。学习时需要熟悉:a)五种Layout布局深刻理解五种布局组织控件的方式是一个基本的基础,这样你才可以在实际的界面中灵活的使用每种布局结构,构造出需要的界面。b)常用控件控件有很多,至少要知道每种控件是做什么的,至于里面的特定参数和方法可以学要的时候再去查c)界面美化系统的控件很多时候无法满足要求,需要通过添加背景更换图片等进行美化,要熟悉每种控件如何去美化。掌握android软件开发了上面的内容,通过布局的嵌套就可以制作出各种界面,如果在熟悉include的使用就可以减少xml的重复,方便后期的修改和维护android软件开发了。2)使用代码动态创建有些时候需要动态的创建一些布局和控件,这个就需要使用LayoutInflater去创建一些动态的界面了。3)自己绘制界面游戏中常用,继承SurfaceView自己绘制。3、数据存储技术Android中的数据存储方式有3种:1)SharedPrefereneces存储对于简单的数据可以使用该方式存储,以键值对的方式存储一些基本的数据。2)文件存储将数据以文件的形式存储,可以是手机自身的存储也可以是SD卡,文件的数据格式自己定义。3)SQLite数据库存储使用标准SQL语句进行操作,复杂数据的首选。4、网络编程现在的Android程序不需要联网的已经不多了。所以网络编程也是必须的,一般的公司都会封装有自己的联网结构,但是基本的联网还是要熟悉。1)HTTP联网使用Http联网+Json数据格式是现在很多客户端的首选。2)Socket联网至于蓝牙等连接方式则可以在项目需要的时候学习。对于手机的系统功能,如拨打电话、发送短信、读取系统参数等则可以根据需要在学习,不麻烦的。其次,手机软件相关Android开发不同于普通的电脑软件开发,需要了解手机的操作习惯,知道手机的屏幕不大、内存有限,电池有限等,在实际开发和设计时尽量考虑。
北大青鸟java培训:Android软件开发前景怎么样?Android软件开发前景怎么样?在智能硬件横行的现今社会,各种黑科技层出不穷,Android系统的不断更新迭代,手机的不断增产,使用的人也不断在生长。Android软件开发前景怎么样?Android在现在发展的非常好,无论是八零后还是九零后对于安卓手机的喜爱也越来越多。也带动了很多关于Android产业的就业,为什么Android会有如此大的魔力?其原因就是他的源码开发,谷歌一直不断在创新,更新自己的产品,保持这么久的生命力呢?在之前的数据显示,Android就已经显示出强大的优势,两年的时间里就超过了当时风头正盛的塞班系统,成为最受欢迎的系统,占领了大部分的手机市场。Android的系统应用的面很广,不仅仅单纯是在手机上,而且还在平板电脑上也很有作为。而且现在国产的手机都是采用Android系统,例如华为、中兴、小米等等,更是加速了Android系统的发展,使它的用户越来越多,关于Android的技术人员也受到企业的需要。Android软件开发前景怎么样市面上一般的培训机构只针对其中的一种进行培训,教授的知识面很窄。有的只教你片面的知识,在公司企业里不能得到广泛的应用,只能到公司里去大量二次学习,他们的工资也是一涨再涨,我们国家实在是太短缺这方面的人才了。电脑培训发现为了这个行业发展的更加迅速,无论是学校还是社会都需要贡献自己的一份力量。
安卓Android软件开发用什么语言?Android以Java为编程语言。操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。扩展资料:安卓软件开发学习内容Android基础阶段:平台架构特性(JAVA/C) Market/应用程序组件 环境搭建与部署/打包与发布 AVD/DDMS/AAPT 调试与测试 相关资源访问/资源制作 。Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及深层实现。Android进阶初级:组件Widget/ 菜单Menu/ 布局Layout 详解 Xml解析(Pull/Dom/Sax)/JNI 解析SQL数据库原理, SQLite /SharedPreferences/File详解 多媒体Audio/Video/Camera 详解。Android进阶高级:蓝牙/WIFI SMS/MMS 应用实现 深层次解析GPS原理,实现。LocationManager/LocationProvider 进行定位/跟踪/查找/趋近警告以及Geocoder正逆向编解码等技术细节。2D图形库(Graphics/View)详解 SDCARD/传感器/手势 应用实现。参考资料来源:百度百科-android软件开发
安卓开发的入门书籍大家推荐几本?
在这里将我收集的一些Android开发书籍,与大家分享:
1、介绍Android与GPhone的书籍
IntroductionToAndroid
Google官方文档,简要的介绍了Android的各个方面,值得大家看下。
下载:DownloadLink
GPhone说明书
是每个开发人员必须阅读的,关于GPhone的使用、功能,结合SDK看想必收获会更大。
下载:
2、经典开发书籍
Android编程入门教程andbook
andbook是我看到的最简单但最好的Android程序开发入门书籍,内容仅有60多页,图文并茂,如果你从来没有接触过Android开发,也完全可以通过阅读此书了解程序开发过程,甚至对APK程序的基本原理和AndroidUI界面开发有个清晰的认识,相信你花上几个小时读过后,一定会跃跃欲试加入Android开发行列,心动吧,那就行动吧。。。
英文原版下载:
中文版下载:
深入浅出Android_Google手持设备应用程序设计
入门书籍,作者写的很不错,可以在阅读SDK的同时阅读这本书,中间的一些使用介绍的非常清楚,最重要的是中文版的
GoogleAndroid应用框架原理与程式设计36技
最早介绍Android的中文书籍,台湾人写的繁体版的,看得有些影响,不过还是值得耐心阅读的
AndroidAProgrammer’sGuide
多个专家写的介绍Android的书籍,内容写的很不错,AsktheExpert部分针对一些问题作了详细的说明
AndroidEssentials
对Android介绍的比较全面,从安装到开发,应该有新版本了。
GoogleAndroidSDK开发范例大全(第2版)
以Android手机应用程序开发(采用AndroidSDK2.1)为主题,通过160多个范例全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计功力提供了很大的帮助。
GoogleAndroid开发入门与实战
内容上覆盖了用Android开发的大部分场景,从Android基础介绍、环境搭建、SDK介绍、Market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个Android平台下的完整综合实例及源代码分析,分别是RSS阅读器、基于GoogleMap的个人GPS、豆瓣网(Web2.0)客户端、在线音乐播放器、手机信息助手,为初学者学习与实践结合提供了很好的指导。
Android平台开发之旅
涵盖了Android平台1.5到2.2版本的主要功能特性,立足实际的开发案例,介绍了Android手机平台开发的基础概念、实用技术和应用模式。主要内容包括:平台基础、开发环境搭建、程序框架、高级界面和底层界面设计、文件系统管理、网络通信、无线通信、多媒体编程、个人信息管理、电话系统、数据库应用、XML应用和地图应用。开发实例多达120例。
如何成为Android高手
成为一名真正的Android高手必须掌握和遵循的一些准则:
1,学会懒惰
2,精通Android体系架构、MVC、常见的设计模式、控制反转(IoC)
3,编写可重用、可扩展、可维护、灵活性高的代码
4,高效的编写高效的代码
Android,Studio教程从入门到精通 Android从入门到精通
经过2年时间的研发,Google终于正式发布了面向Android开发者的集成开发环境Android Studio 1.2(稳定版)。Android Studio是Google开发的一款面向Android开发者的IDE,支持Windows、Mac、Linux等操作系统,基于流行的Java语言集成开发环境IntelliJ搭建而成。该IDE在2013年5月的Google I/O开发者大会上首次露面,当时的测试版各种莫名其妙的Bug,但是14年12月8日发布的版本是稳定版。Android Studio 1.0推出后,Google官方将逐步放弃对原来主要的Eclipse ADT的支持,并为Eclipse用户提供了工程迁移的解决办法。不过相信作为Developer的你上手AS 1.0以后你再也不愿意使用原来苦逼的Eclipse+ADT了,你会被AS的各种强大所吸引。
下载安装
下载AS前先说下,AS安装包分为含SDK版本和不含SDK版本下载,如果你有SDK,那么完全可以下载不含SDK版本;
不过下载了含SDK版本也没事,安装时选择自定义SDK也可以,安装后重新指定SDK路径也可以,总之看个人爱好喽。先吐槽下天朝的强大吧,不得不拜服天朝的墙。如果你有梯子请去 Android Developer下载最新版的AS安装包,如果你没有梯子那也有个办法,就是去Android Studio中文社区官网下载你的平台需要的安装包。
下载下来以后安装的过程可以忽略了吧,能安装的都是程序猿吧,所以安装这点就不说了,注意已经正确安装配置了JDK。
安装好了以后首次运行AS可能一直停在Fetching Android SDK component information。如下界面:
这是因为天朝的墙真的太高太厚把首次运行更新SDK给墙了。解决办法就是关闭安装向导,如果无法关闭可以在任务管理器中手动关掉进程(Ctrl+Alt+Del启动任务管理器),然后打开AS安装目录下的bin目录里面的idea.properties文件,添加一条禁用开始运行向导的配置项:
disable.android.first.run=true
然后再启动程序就会打开项目向导界面,这个时候如果点击Start a new Android Studio project是没有反应的,并且在Configure下面的SDK Manager是灰色的,这是因为没有安装Android SDK的缘故。这时候一般有两种做法:
然后再启动程序就会打开项目向导界面,这个时候如果点击Start a new Android Studio project是没有反应的,并且在Configure下面的SDK Manager是灰色的,这是因为没有安装Android SDK的缘故。这时候一般有两种做法:
自己没有SDK,需要从网络下载;
打开向导的Configure-Settings,在查找框里面输入proxy,找到下面的HTTP Proxy,设置代理服务器,并且将Force https://… sources to be fetched using https://选中,然后退出将上面在idea.properties配置文件中添加的那条配置项注释掉重新打开Android Studio等刚开始的向导把Android SDK下载安装完成就可以了。
自己有SDK,重新指定SDK路径;
打开向导的Configure->Project Defaults->Project Structure,在此填入你已有的SDK路径。
此时重启AS就可以在向导里新建Android工程喽。至此整个安装过程结束。
基本使用介绍
首先新建工程,输入工程名和主包名和存储路径;
点击next到如图步骤: 上图中首先你可选择你的App要适配的设备是Wear还是Mobile还是TV。在你新建App选择最低适配版本时,强大的AS会给你一些有用的统计提示,如图描述了当前版本的用户情况,点击Help me choose后弹出如下更加形象的分布图表描述:
爱不释手的亮点就是这么一步一步比Eclipse强大的,这只是一些不值得一提的小点而已,强大的功能还在后面。继续点击Next选择形象友好的GUI模板,点击完成进入工程初始化过程。
第一次安装工程初始化时由于需要联网下载gradle会比较慢,不过有时候不是第一也会慢,工程依赖的gradle版本不匹配时也会自动重新下载;
我的初始化很快,原因是我本地的gradle-2.2-all.zip之前已经下载OK的。至于啥时gradle后文会有说明。这儿只是告诉你若果你看到卡一会儿时正常的。
接下来进入到了工程界面下:
这个创建过程可比Eclipse上长的多。主要是因为从gradle上下载。gradle也可以手动离线下载好放在对应目录下。工程的结构和 Eclipse上的不同,src下分为java和res。AS是基于idea,而idea和eclipse有大的区别,有好处也有不好的地方,在一段时间里,idea被认为是开发java最好用强大的ide工具,所以AS新建的时候有new application和new module开发。idea没有工作空间这样的说法。这就是Eclipse用户切换过来第一个比较不适应的地方。
具体说就是:
android studio是单工程的开发模式
android studio中的application相当于eclipse里的workspace概念
android studio中的module相当于eclipse里的project概念
有了如上三条概念自己手动创建摸索下,相信聪明的你自然就明白咋回事了吧。
接下来看一些工欲善其事必先利其器的基本高频率实用设置:
中文乱码—–在窗口中,找到IDE Settings->Appearance,在右侧勾选上“Override default fonts by”,然后在第一个下拉框中选择字体为“simsun”,然后apply,重启IDE,就好了。
设置快捷键—–在settings窗口中,找到IDE Settings->keymap,右侧打开的就是快捷键了。右键单击要修改的快捷键,会弹出一个菜单,选择“Add keyboard shortcut”就可以修改快捷键了。删除的话,在弹出的菜单中选择remove XXX即可。特别说明,在AS的快捷键设置里可以直接设置使用Eclipse快捷键还是别的IDE快捷键。如果你热衷Eclipse那么也可设置成Eclipse的快捷键。
修改主题—–在IDE Settings->Appearance,右侧的Theme选择自己喜欢的主题即可。个人比较喜欢Darcula主题,也就是如上截图样式。
如何将Eclipse工程导入AS使用—–选择File->Import Project,在弹出的菜单中选择要导入的工程即可,选择好以后就直接next,在第二个窗口中也选择默认的第一个选项就可以。需要注意的是,在AS中,有两种工程,一个是Project,一个是Module,上面已经细说过了。
导入jar包—–选择File->Projcet Structure,在弹出的窗口中左侧找到Libraries并选中,然后点击“+”,并选择Java就能导入Jar包了。或者直接拷贝jar文件到项目的libs文件夹下,然后运行:Sync Project with Gradle Files。然后clean project重新编译。
删除项目—–AS对工程删除做了保护机制,默认你在项目右键发现没有删除选项。你会发现你的module上面会有一个小手机,这是保护机制。删除的第一步就是去掉保护机制,也就是让手机不见,具体做法就是鼠标放在工程上右键->open module setting,或者F4进入如图界面,选中你要删除的module,然后点击减号,这样就取消了保护机制,然后回到项目工程右键就可发现删除选项。注意:删除会将源文件删除。
这里写图片描述
到此为止AS的基本情况相信你已经有个大致了解了。具体比Eclipse的优势体现在如下几点:
AS是Google专门为Android基于IntelliJ IDEA打造的利器。亲生的永远是最好的,只是现在还在成长中而已。
AS在速度上不管哪一个方面都比Eclipse快。
Darcula主题UI简直就是极客范,帅爆了。
强大的智能提示补全功能在写代码时简直比Eclipse高效率N倍。
智能保存,不需要Ctrl + S。效率会大大提升。
整合Gradle构建工具,Gradle集合了Ant和Maven的优点,不管是配置、编译、打包都非常牛逼。
UI编辑器简直比Eclipse高效N倍,自带了多设备的实时预览,简直是神器。多语言适配点击地球直接输入,再也不用比较那个string没有翻译了。
内置终端直接替代cmd命令行,一个IDE全部搞定。
完善的插件系统,如Git、Markdown、Gradle等,直接搜索下载。
版本控制系统,安装的时候就自带GitHub, Git, SVN等流行的版本控制系统,可以直接check out你的项目,边写代码边右键可以直接具备BCompare功能与其他版本进行对比修改。
总之就一句话,相信我,若果你和我一样是Eclipse用户切换过来,那么你绝对不会再切换回去,你会爱上AS的。
新建工程项目后AS的Product目录结构如下所示:
.idea://AS生成的工程配置文件,类似Eclipse的project.properties。
app://AS创建工程中的一个Module。
gradle://构建工具系统的jar和wrapper等,jar告诉了AS如何与系统安装的gradle构建联系。
External Libraries://不是一个文件夹,只是依赖lib文件,如SDK等。
新建工程项目后AS的Module目录结构如下所示:
build://构建目录,相当于Eclipse中默认Java工程的bin目录,鼠标放在上面右键Show in Exploer即可打开文件夹,
编译生成的apk也在这个目录的outs子目录,不过在AS的工程里是默认不显示out目录的,就算有编译结果也
不显示,右键打开通过文件夹直接可以看。
libs://依赖包,包含jar包和jni等包。
src://源码,相当于eclipse的工程。
main://主文件夹
java://Java代码,包含工程和新建是默认产生的Test工程源码。
res://资源文件,类似Eclipse。
layout://App布局及界面元素配置,雷同Eclipse。
menu://App菜单配置,雷同Eclipse。
values://雷同Eclipse。
dimens.xml://定义css的配置文件。
strings.xml://定义字符串的配置文件。
styles.xml://定义style的配置文件。
......://arrays等其他文件。
......://assets等目录
AndroidManifest.xml://App基本信息(Android管理文件)
ic_launcher-web.png://App图标
build.gradle://Module的Gradle构建脚本
Android Studio调试其实也非常方便,一般问题直接通过AS的DDMS的Logcat就可以搞定。AS支持类似Eclipse的DDMS的所有功能。这里要说的是疑难问题的调试方式,即断点调试。
首先先编译好要调试的程序。 如上图2所示在行号处点击设置断点。然后如1所示点击开启调试会话。 如上图所示,IDE下方出现Debug视图,1指向的是现在调试程序停留的代码行,2区域是程序的方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。由此顺序想必有些Android深入功底了解一点Android系统启动流程的就知道这几个方法咋回事,怎么到Activity的onCreate的。哈哈,说到系统了。不扯了。3是一些调试按钮,快捷键放在上面直接会显示。4和5是一些变量观察区。
上图中:
点击1指向的按钮,程序向下执行一行,如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行。
点击2指向的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。
点击3钮在调试的时候能进入任何方法。
点击4的作用是如果在调试的时候你进入了一个方法(如debugFunc),并觉得该方法没有问题,你就可以使用4跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
点击5指向的按钮后,你将返回到当前方法的调用处重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
如上图设置多个断点,开启调试。想跨断点移动到下一个断点,点击如下图1箭头,程序将运行一个断点到下一个断点之间需要执行的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。点击箭头2指向的按钮,可以查看你曾经设置过的断点并可设置断点的一些属性,如下图所示。调试开始后,在 Variables区域可以给指定的变量赋值(鼠标左键选择变量,右键弹出菜单选择setValue…)。这个功能可以更加快速的检测你的条件语句和循环语句。点击箭头3加号或者在调试的代码变量上右键添加watcher即可查看跟踪变量值。
上图箭头1指向的是你曾经设置过的断点,箭头2可以设置条件断点(满足某个条件的时候,暂停程序的执行,如 index==5)。结束调试后,应该在箭头1处把所设的断点删除(选择要删除的断点后,点击上方的红色减号)。
以上便是AS的一些调试使用技巧。
Android Studio构建系统基础
基础知识
项目创建成功后会自动下载Gradle,这个过程特别慢,建议FQ。下载的Gradle在Windows平台会默认在 C:Documents and Settings用户名>.gradlewrapperdists目录,这个目录下有个gradle-x.xx-all的文件夹,。也可以自己手动到Gradle官网下载对应的版本,然后将下载的.zip文件(也可以解压)复制到上述的gradle-x.xx-all 文件夹下。
每一个Module都需要有一个gradle配置文件,语法都是一样,唯一不同的是开头声明的是apply plugin。注意区分不同位置的build.gradle文件。
AS的工程根目录下的build.gradle文件:
buildscript { //设置脚本的运行环境 repositories { //支持java依赖库管理(maven/ivy等),用于项目的依赖 //mavenCentral() //仅仅是不同的网络仓库而已 jcenter() //推荐使用这个仓库 } //依赖包的定义。支持maven/ivy、远程、本地库、单文件,前面定义了repositories{}jcenter库,使用jcenter的依赖只需要按照 //类似于com.android.tools.build:gradle:1.0.0-rc2,gradle就会自动的往远程库下载相应的依赖。 dependencies { classpath 'com.android.tools.build:gradle:1.0.0-rc2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } //多项目的集中配置,多数构建工具,对于子项目的配置,都是基于继承的方式。Gradle除了提供继承方式设置子项目,还提供这种配置 allprojects { repositories { jcenter() } }
AS的工程根目录下的settings.gradle文件:
include ':app' //module include ':my_lib' //module(build as lib)
AS的工程根目录下的Module的build.gradle文件(此处以一个简单的Lib module的gradle为例):
//plugin在AS里取值一般为'com.android.library'或者'com.android.application' apply plugin: 'com.android.library' //构建为lib android { compileSdkVersion 17 //编译需要SDK版本 buildToolsVersion "19.1.0" //SDK Manager确定本地安装该版本才可以 defaultConfig { minSdkVersion 8 //最小版本 targetSdkVersion 17 //目标版本 } buildTypes { //编译项 release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { //依赖支持 compile 'com.android.support:support-v4:18.+' }
Gradle打包APP签名
默认情况下,debug被配置成使用一个debug keystory。debug keystory使用了默认的密码和默认key及默认的key密码。debug构建类型会自动使用debug签名配置。在你的Module的build.gradle文件中添加:
android { ...... signingConfigs { myConfig{ storeFile file("yanbober.keystore") storePassword "gradle" keyAlias "gradle" keyPassword "gradle" } } buildTypes{ release { runProguard true zipAlignEnabled true // 移除无用的resource文件 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.myConfig } } }
虽然经常使用项目根目录的相对路径作为keystore的路径,但是也可以使用绝对路径,尽管这并不推荐(除了自动创建出来的debug keystore)。运行gradle clean gradle build即可生成签名混淆对齐的app。
Gradle构建Android应用多渠道包(批量打包)
Android应用的发布需要面对各种各样的市场,我们称之为渠道。通常作为开发者我们需要知道应用是从哪个渠道下载的。这种统计信息一般常用的是百度统计或者友盟统计。这里举例时使用友盟统计为例说明问题。原理是Gradle的Manifest Merger。
在AndroidManifest.xml里配置所谓的PlaceHolder。
在模块build.gradle文件的defaultConfig加上PlaceHolder,作用是声明CHANNEL_VALUE是可替换值的PlaceHolder,同时为其设置yanbober默认值。
android { ...... defaultConfig { ...... manifestPlaceholders = [ CHANNEL_VALUE:"yanbober" ] } }
在模块的build.gradle文件里添加ProductFlavors配置。ProductFlavors其实就是可定义的product特性,与Manifest Merger使用就可以在一次编译过程中产生多个具有自己特性配置的版本。下面这个配置的作用就是为每个渠道包产生不同的CHANNEL_VALUE的值。
android { ...... defaultConfig { ...... manifestPlaceholders = [ CHANNEL_VALUE:"yanbober" ] } productFlavors { yanbober{} wandoujia{} xiaomi{} baidu{} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [ CHANNEL_VALUE:name ] } }
批量生成多渠道包:进入工程目录下运行gradlew assembleRelease。可以看到编译一共产生了4个apk,分别对应在productFlavors段定义的4个渠道。反编译打开 AndroidManifest.xml就会发现CHANNEL这一段的配置已经被修改。
生成单个渠道包:打开AS的Gradle Tasks面板模块有很多任务,直接双击对应的耽搁渠道任务生成对应的apk。用命令行单独生成xiaomi渠道使用gradlew assemblexiaomiRelease就好了。
好了,Gradle的基本情况就说到这,具体可以阅读官网或者查阅其他资料,Gradle的使用需要经验的积累。
Android Studio插件安装及使用Genymotion模拟器
Android Studio自带的模拟器速度已经比Eclipse插件的快一点了,但是还不够暴力,不够爽。现在来说说最暴力的Genymotion模拟器如何结合AS 使用。首先上Genymotion官网下载安装Genymotion,同时你需要在Genymotion官网官网上注册一个账号,这样你才能正常的使用 Genymotion。
进入AS的Settings界面左侧找到Plugins,点击下图箭头Button(也就是在线安装):
顺便说下上图界面也就是AS安装插件的通用方法,可以看见当前已经安装了的插件,选择在线安装或者从硬盘安装,即针对你已经下载好了的插件,可通过这项选择到你下好的插件,进行安装。
如下图所示在1区输入插件名字,2区选中,3区下载安装,然后返回后在AS工具栏上可以看见Genymotion小图标,也就是箭头4指的那个玩意,说明安装OK。
接下来就是设置下Genymotion,新建一个虚拟机设备,这是Genymotion的东西,至于怎么弄Step by Step就行,没啥难度。完事点击AS上模拟器图标就可以启动使用了,运行AS程序选择模拟器就可以在模拟器看见自己程序了,下图就是 Genymotion启动起来的界面。
至此快速模拟器Genymotion已经搞定,提升你的速度。其他的插件安装也就触类旁通了。
其他
其他的也就是快捷键啥玩意的了。这东西就得自己积累慢慢整了,纯属积累熟练。诡异的问题就自行google和度娘了。其实到现在版本的AS还是有一些Bug的,但是满足基本需求了,遇见Bug查阅修改绕过或者使用大招—-重启AS一般就能解决,其他的诡异问题欢迎讨论共同成长。
PS:其他问题上AD就行了,这文章基本也就是AD的翻译版加上自己遇到的蛋疼问题的汇总了。
谁有好的安卓开发教程推荐_安卓开发需要学哪些东西
您好。首先,必须要有程序语言的基础,比如C,或直接由JAVA基础也行。
学会JAVA《JAVA编程思想》
了解安卓《ANDRIOD应用揭秘》,以及生命周期
学会安卓控件,数据库,xml,以及其他的资源目录结构的用途
搭载JAVA环境,下载IDE,一般使用ADT开发(看附件)
准备好安卓系统的手机(虚拟机只能简单虚拟运行,实际用安卓设备测试BUG比较好)
新建安卓工程
构思要做什么,怎么做
看别人源码和构思
同时我建议最好还是经过系统点的学习比较好,找一个正规的培训机构,培训学校好不好,先要了解他们的授课老师的是否有教学经验,再就是就业情况和入学有哪些保证。培训android差不多的我知道的有千锋/教育,讲师都是有丰富教学经验,课程内容都是实战,这但是不错的。
流外多和大家交流一下学习过程中遇到的一些问题。
不懂得问各位大婶
还有要了解的追问。希望能帮到您~~
移动开发基础教程:Android是什么 安卓开发
Android是基于Linux内核的操作系统,是谷歌公司在2007年11月5日公布的手机操作系统,早期由谷歌开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。一、简介BlackBerry和iPhone都提供了受欢迎的、高容量的移动平台,但是却分别针对两个不同的消费群体。BlackBerry是企业业务用户的不二选择。但是,作为一种消费设备,它在易用性和 “新奇特性” 方面难以和iPhone抗衡。Android则是一个年轻的、有待开发的平台,它有潜力同时涵盖移动电话的两个不同消费群体,甚至可能缩小工作和娱乐之间的差别。如今,很多基于网络或有网络支持的设备都运行某种Linux内核。这是一种可靠的平台:可经济有效地进行部署和提供支持,并且可直接作为面向部署的良好的设计方法。这些设备的UI通常是基于HTML的,可通过PC或Mac浏览器查看。但并不是每个设备都需要通过一个常规的计算设备来控制。想象一下传统的家用电器,例如电炉、微波炉或面包机。如果您的家用电器由Android控制,并且有一个彩色触摸屏,会怎么样?如果电炉上有一个Android UI,那么操控者甚至可以烹饪点什么东西。二、Android术语在Eclipse环境中开发Android应用程序需要了解Eclipse环境和Android平台的知识。了解以下术语会有助于用Eclipse插件开发Android应用程序。Open Handset Alliance这是一个由谷歌公司主导的组织,它由许多公共和私人组织组成。Android这是Open Handset Alliance的主打产品。它是一种针对移动设备的开放源码操作环境。模拟器模拟另一个系统的软件工具—这常常是在个人计算机(IBM、Mac、Linux)上运行的一个环境,它模拟另一个环境,比如移动计算设备。Linux一种开放源码的操作系统内核,许多计算平台都使用这种操作系统,包括服务器、桌面计算机、网络设备和移动计算设备。Android在Linux内核上运行。Dalvik Virtual MachineDalvik VM是Android产品组合中的一种操作环境,它在运行时解释应用程序代码。Dalvik VM与Java VM相似,但是两者不兼容。三、Android简史Android平台是Open Handset Alliance的成果,Open Handset Alliance 组织由一群共同致力于构建更好的移动电话的公司组成。这个组织由谷歌领导,包括移动运营商、手持设备制造商、零部件制造商、软件解决方案和平台提供商以及市场营销公司。从软件开发的观点看,Android正处在开源领域的中心位置。市场上第一款支持Android的手机是由HTC制造并由T-Mobile供应的G1。这款设备从设想到推出花了大约一年的时间,惟一可用的软件开发工具是一些实行增量改进的SDK发行版。随着G1发行日的临近,Android团队发布了SDK V1.0,用于这个新平台的应用程序也浮出水面。为了鼓励创新,谷歌举办了两届“Android Developer Challenges”,为优胜的参赛作品提供数百万美金的奖励。G1 问世几个月之后,随后就发布了Android Market,它使用户可以浏览应用程序,并且可以将应用程序直接下载到他们的手机上。经过大约 18 个月,一个新的移动平台进入公众领域。四、Android平台Android平台被称为一个产品组合,因为它是一系列组件的集合,包括:基于Linux内核的操作系统 Java编程环境 工具集,包括编译器、资源编译器、调试器和模拟器 用来运行应用程序的Dalvik VMAndroid有丰富的功能,因此很容易与桌面操作系统混淆。Android是一个分层的环境,构建在Linux内核的基础上,它包括丰富的功能。UI 子系统包括:窗口 视图 用于显示一些常见组件(例如编辑框、列表和下拉列表)的小部件。Android包括一个构建在WebKit基础上的可嵌入浏览器,iPhone 的Mobile Safari浏览器同样也是以WebKit为基础。Android提供多种连接选项,包括WiFi、蓝牙和通过蜂窝(cellular)连接的无线数据传输(例如GPRS、EDGE 和3G)。Android应用程序中一项流行的技术是链接到谷歌地图,以便在应用程序中显示地址。Android软件栈还提供对基于位置的服务(例如GPS)和加速计的支持,不过并不是所有的Android设备都配备了必需的硬件。另外还有摄像支持。过去,移动应用程序努力向桌面应用程序看齐的两个领域分别是图形/媒体和数据存储方法。Android通过提供对2D和3D图形的内置支持,包括OpenGL 库,解决了图形方面的挑战。由于Android平台包括流行的开源SQLite 数据库,因此缓解了数据存储的负担。图1显示一个简化的Android软件层次结构。五、应用程序架构如前所述,Android运行在Linux内核上。Android应用程序是用Java编程语言编写的,它们在一个虚拟机(VM)中运行。需要注意的是,这个VM并非您想象中的JVM,而是Dalvik Virtual Machine,这是一种开源技术。每个Android应用程序都在Dalvik VM的一个实例中运行,这个实例驻留在一个由Linux内核管理的进程中,如下图所示。Android应用程序由一个或多个组件组成:活动具有可视UI的应用程序是用活动实现的。当用户从主屏幕或应用程序启动器选择一个应用程序时,就会开始一个动作。服务服务应该用于任何需要持续较长时间的应用程序,例如网络监视器或更新检查应用程序。内容提供程序可以将内容提供程序看作数据库服务器。内容提供程序的任务是管理对持久数据的访问,例如SQLite数据库。如果应用程序非常简单,那么可能不需要创建内容提供程序。如果要构建一个较大的应用程序,或者构建需要为多个活动或应用程序提供数据的应用程序,那么可以使用内容提供程序实现数据访问。广播接收器Android应用程序可用于处理一个数据元素,或者对一个事件(例如接收文本消息)做出响应。Android应用程序是连同一个AndroidManifest.xml文件一起部署到设备的。AndroidManifest.xml包含必要的配置信息,以便将它适当地安装到设备。它包括必需的类名和应用程序能够处理的事件类型,以及运行应用程序所需的许可。例如,如果应用程序需要访问网络 — 例如为了下载一个文件 — 那么manifest文件中必须显式地列出该许可。很多应用程序可能启用了这个特定的许可。这种声明式安全性有助于减少恶意应用程序损害设备的可能性。六、所需工具开始开发Android应用程序的最简捷的方式是下载AndroidSDK 和EclipseIDE。Android开发可以在微软Windows、Mac OS X 或Linux上进行。本文假设您使用的是Eclipse IDE和用于Eclipse的Android Developer Tools插件。Android应用程序是用Java语言编写的,但是是在Dalvik VM(非Java虚拟机)中编译和执行的。在Eclipse中用Java语言编程非常简单;Eclipse 提供一个丰富的Java环境,包括上下文敏感帮助和代码提示。Java 代码通过编译后,Android Developer Tools 可确保适当地将它打包,包括AndroidManifest.xml 文件。虽然没有Eclipse和Android Developer Tools插件也可以开发Android应用程序,但是那样就需要熟悉Android SDK。AndroidSDK 是作为一个ZIP文件发布的,可以将该文件解压到硬盘上的一个目录中。由于有多个SDK更新,建议有意识地组织开发环境,以便在不同的SDK安装之间轻松地切换。SDK 包括:android.jarJava 归档文件,其中包含构建应用程序所需的所有的Android SDK 类。documention.html和docs目录本地和网上提供的SDK文档。这些文档的主要形式为JavaDocs,以便于在SDK中导航大量的包。文档还包括一个高级开发指南和Android社区的链接。Samples目录Samples子目录包含各种应用程序的源代码,包括ApiDemo,该应用程序演示了很多API。这个示例应用程序可以作为Android应用程序开发的良好起点。Tools目录包含所有用于构建Android应用程序的命令行工具。最常用、最有用的工具是adb实用程序(Android Debug Bridge)。usb_driver该目录包含将开发环境连接到支持Android的设备(例如G1或Android Dev 1解锁开发手机)所需的驱动程序。只有Windows平台的开发人员才需要这些文件。Android应用程序可以在实际的设备上运行,也可以在Android SDK 附带的Android Emulator上运行。图 3 显示Android Emulator 的主屏幕。七、Android Debug Bridgeadb实用程序支持一些可选命令行参数,以提供强大的特性,例如复制文件到设备或从设备复制文件。可以使用shell命令行参数连接到手机本身,并发送基本的shell命令。图 4 显示在通过USB线连接到Windows笔记本电脑的一个实际设备上运行的adb shell命令。在这个shell环境中,可以:显示网络配置,网络配置可显示多个网络连接。注意这多个网络连接:lo是本地或loopback连接。tiwlan0是WiFi连接,该连接由本地DHCP服务器提供一个地址。显示PATH环境变量的内容。执行su命令,以成为超级用户。将目录改为/data/app,其中存放用户应用程序。列出包含某个应用程序的目录。Android应用程序文件实际上是归档文件,可通过WinZip之类的软件查看。扩展名为apk。发出ping命令,查看Google.com是否可用。从相同的命令提示符环境中,还可以与SQLite 数据库交互,启动程序以及执行许多其他系统级任务。想像一下您正在连接到电话,因此这是非常了不起的功能。
安卓开发线程和进程讲解
本教程为大家介绍安卓开发中的线程和进程,安卓平台中当首次启动运行一个组件的时候,Android会相应的启动了一个进程。默认的,所有的组件和程序运行在这个进程和线程中,也可以安排组件在其他的进程或者线程中运行。进程:组件运行的进程由manifest file控制。组件的节点activity, service, receiver, 和 provider 都包含一个 process 属性。这个属性可以设置组件运行的进程:可以配置组件在一个独立进程运行,或者多个组件在同一个进程运行。甚至可以多个程序在一个进程中运行——如果这些程序共享一个User ID并给定同样的权限。 节点也包含 process 属性,用来设置程序中所有组件的默认进程。所有的组件在此进程的主线程中实例化,系统对这些组件的调用从主线程中分离。并非每个对象都会从主线程中分离。一般来说,响应例如View.onKeyDown()用户操作的方法和通知的方法也在主线程中运行。这就表示,组件被系统调用的时候不应该长时间运行或者阻塞操作(如网络操作或者计算大量数据),因为这样会阻塞进程中的其他组件。可以把这类操作从主线程中分离。当更加常用的进程无法获取足够内存,Android可能会关闭不常用的进程。下次启动程序的时候会重新启动进程。当决定哪个进程需要被关闭的时候, Android会考虑哪个对用户更加有用。如Android会倾向于关闭一个长期不显示在界面的进程来支持一个经常显示在界面的进程。线程:即使为组件分配了不同的进程,有时候也需要再分配线程。比如用户界面需要很快对用户进行响应,因此某些费时的操作,如网络连接、下载或者非常占用服务器时间的操作应该放到其他线程。线程通过java的标准对象Thread 创建. Android 提供了很多方便的管理线程的方法:— Looper 在线程中运行一个消息循环; Handler 传递一个消息; HandlerThread 创建一个带有消息循环的线程。远程调用Remote procedure callsAndroid有一个远程调用(RPCs) 的轻量级机制— 通过这个机制,方法可以在本地调用,在远程执行(在其他进程执行),还可以返回一个值。要实现这个需求,必须分解方法调用,并且所有要传递的数据必须是操作系统可以访问的级别。从本地的进程和内存地址传送到远程的进程和内存地址并在远程处理和返回。返回值必须向相反的方向传递。Android提供了做以上操作的代码,所以开发者可以专注于实现RPC的接口。一个RPC接口只能包含方法。所有的方法都是同步执行的(直到远程方法返回,本地方法才结束阻塞),没有返回值的时候也是如此。简单来说,这个机制是这样的:使用IDL (interface definition language)定义你想要实现的接口, aidl 工具可以生成用于java的接口定义,本地和远程都要使用这个定义。它包含2个类,inner类包含了所有的管理远程程序(符合IDL描述的接口)所需要的代码。所有的inner类实现了IBinder 接口.其中一个在本地使用,可以不管它的代码;另外一个叫做Stub继承了 Binder 类。为了实现远程调用,这个类包含RPC接口。开发者可以继承Stub类来实现需要的方法。一般来说,远程进程会被一个service管理(因为service可以通知操作系统这个进程的信息并和其他进程通信),它也会包含aidl 工具产生的接口文件,Stub类实现了远处那个方法。服务的客户端只需要aidl 工具产生的接口文件。以下是如何连接服务和客户端调用:·服务的客户端(本地)会实现onServiceConnected() 和onServiceDisconnected() 方法,这样,当客户端连接或者断开连接的时候可以获取到通知。通过 bindService() 获取到服务的连接。· 服务的 onBind() 方法中可以接收或者拒绝连接,取决它收到的intent (intent通过 bindService()方法连接到服务). 如果服务接收了连接,会返回一个Stub类的实例.· 如果服务接受了连接,Android会调用客户端的onServiceConnected() 方法,并传递一个Ibinder对象(系统管理的Stub类的代理),通过这个代理,客户端可以连接远程的服务。以上的描述省略很多RPC的机制。请参见Designing a Remote Interface Using AIDL 和 IBinder 类。线程安全的方法在某些情况下,方法可能调用不止一个的线程,因此需要注意方法的线程安全。对于可以远程调用的方法,也要注意这点。当一个调用在Ibinder对象中的方法的程序启动了和Ibinder对象相同的进程,方法就在Ibinder的进程中执行。但是,如果调用者发起另外一个进程,方法在另外一个线程中运行,这个线程在和IBinder对象在一个线程池中;它不会在进程的主线程中运行。例如,一个service从主线程被调用onBind() 方法,onBind() 返回的对象(如实现了RPC的Stub子类)中的方法会被从线程池中调用。因为一个服务可能有多个客户端请求,不止一个线程池会在同一时间调用IBinder的方法。因此IBinder必须线程安全。简单来说,这个机制是这样的:使用IDL (interface definition language)定义你想要实现的接口, aidl 工具可以生成用于java的接口定义,本地和远程都要使用这个定义。它包含2个类,inner类包含了所有的管理远程程序(符合IDL描述的接口)所需要的代码。所有的inner类实现了IBinder 接口.其中一个在本地使用,可以不管它的代码;另外一个叫做Stub继承了 Binder 类。为了实现远程调用,这个类包含RPC接口。开发者可以继承Stub类来实现需要的方法。一般来说,远程进程会被一个service管理(因为service可以通知操作系统这个进程的信息并和其他进程通信),它也会包含aidl 工具产生的接口文件,Stub类实现了远处那个方法。服务的客户端只需要aidl 工具产生的接口文件。以下是如何连接服务和客户端调用:·服务的客户端(本地)会实现onServiceConnected() 和onServiceDisconnected() 方法,这样,当客户端连接或者断开连接的时候可以获取到通知。通过 bindService() 获取到服务的连接。· 服务的 onBind() 方法中可以接收或者拒绝连接,取决它收到的intent (intent通过 bindService()方法连接到服务). 如果服务接收了连接,会返回一个Stub类的实例.· 如果服务接受了连接,Android会调用客户端的onServiceConnected() 方法,并传递一个Ibinder对象(系统管理的Stub类的代理),通过这个代理,客户端可以连接远程的服务。线程安全的方法在某些情况下,方法可能调用不止一个的线程,因此需要注意方法的线程安全。对于可以远程调用的方法,也要注意这点。当一个调用在Ibinder对象中的方法的程序启动了和Ibinder对象相同的进程,方法就在Ibinder的进程中执行。但是,如果调用者发起另外一个进程,方法在另外一个线程中运行,这个线程在和IBinder对象在一个线程池中;它不会在进程的主线程中运行。例如,一个service从主线程被调用onBind() 方法,onBind() 返回的对象(如实现了RPC的Stub子类)中的方法会被从线程池中调用。因为一个服务可能有多个客户端请求,不止一个线程池会在同一时间调用IBinder的方法。因此IBinder必须线程安全。简单来说,一个content provider 可以接收其他进程的数据请求。即使ContentResolver和ContentProvider类没有隐藏了管理交互的细节,ContentProvider中响应这些请求的方法(query(), insert(), delete(), update(), and getType() )— 是在content provider的线程池中被调用的,而不是ContentProvider的本身进程。因为这些方法可能是同时从很多线程池运行的,所以这些方法必须要线程安全。