搭建Android开发环境
创新互联公司是专业的桑珠孜网站建设公司,桑珠孜接单;提供网站设计制作、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行桑珠孜网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
准备工作:下载Eclipse、JDK、Android SDK、ADT插件
下载地址:Eclipse:
JDK:
Android SDK:
ADT:
1、安装和配置JAVA开发环境:
①把准备好的Eclipse和JDK安装到本机上(最好安装在全英文路径下),并给JDK配置环境变量,其中JDK的变量值为JDK安装路径的根目录,如我的为:D:\Program Files\Java\jdk1.7.0_02;
②打开命令提示符(cmd),输入java -version命令,显示如下图则说明JAVA环境变量已经配置好了。
2、安装ADT插件:
①打开已安装好的Eclipse,选择菜单栏上的“Help”-在弹出的下拉框中单击选择“Install new software...”;
②在新打开的对话框中我们完全可以直接在"Work with"中输入:在线安装ADT插件,但由于Google的服务器搭建在国外,所以通过这种方式安装起来会比较慢,而且可能会出现人品差死活装不上的情况,所以不推荐在线安装。
③我推荐直接通过下载好的ADT插件压缩包进行安装(此种方式可以在离线环境下进行)。具体步骤是:在新打开的对话框中点击“Add”按钮-在打开的对话框中点击“Archive”按钮选择之前已经下载好保存在本地硬盘的ADT插件压缩包,至于上面的“Name”可以随便取,这只是一个代号而已,没什么实际作用。
④在上一步中点击“Ok”按钮后我们会发现中间的空白处出现了两行复选框,单击"Select All"按钮选中所有的复选框,这步过后一路“Next”,需要“Accept”的就选中“Accept”,直到点击“Finish”结束,这样ADT插件就安装好了。整个过程需要的时间视机器性能而定。安装好ADT插件后,Eclipse的工具栏会出现一排Android的图标,如下图:
3、安装SDK:
①把下载好的Android SDK安装到本机上(最好安装在全英文路径下),并为Android SDK配置环境变量。Android SDK的环境变量值为SDK安装目录下的platform-tools文件夹和tools文件夹子目录路径,如我的分别为:E:\My Studying\Android\android-sdk\platform-tools、E:\My Studying\Android\android-sdk\tools,在变量值中,两个路径用逗号隔开。
②打开命令提示符(cmd),分别输入android -h和adb命令,显示如下图则说明Android SDK环境变量已经配置好了。
③打开Android SDK的安装目录,双击 "SDK Manager"-在打开的窗口中先选择你需要安装的SDK版本,其中“Status”表示该SDK包是否安装,如我选的是“Android2.2(API 8)”(我的之前已经安装过了,所以“Status”为“Installed”)-再点击“Install packages...”按钮,在弹出来的窗口中最好选“Accept All”这样才能安装你刚才选的所有的包-最后点“Install”按钮就开始安装了,整个过程会很慢,这需要你的耐心。
另外我们还可以通过在Eclipse上的工具栏中点击下图指示的图标打开“SDK Manager”然后进行安装,这样和上面的SDK安装方式一样,就不累述了。
④最后再选择Eclipes主菜单上的"Windows"-选择"preferrnces";
⑤在弹出来的对话框中选中左边栏的“Android”-通过右侧的“Browse...”按钮选择SDK的安装路径根目录-点击最下方的“Ok”按钮,这样SDK就在Eclipse上加载成功了。
4、创建Android模拟器(AVD):
①打开Eclipse-在Eclipse的工具栏上单击下图指示的图标打开“Android Virsual Device Manager”窗口;
②在“Android Virsual Device Manager”窗口单击“New”按钮-在弹出来的窗口中"Name"可以随便取;“Target”指模拟器的系统版本;“SD Card”的"size"是指手机存储卡的大小,只要你不在模拟器上装太多的应用,一般给个二三十MB就够了;“Skin”是指屏幕的分辨率大小,其中“Built in”是一般手机常用标准屏幕分辨率大小,而“Resolution”是自定义屏幕分辨率大小,具体做法,可以根据自身情况选择。-一切设置好后点击“Create AVD”,这时一个模拟器就创建好了。如果有必要,我们可以创建多个模拟器用于测试时使用。
附:Android模拟器型号以及其对应的分辨率大小:
Standard Width Height DAR Pixeis
HVGA 480 * 320 3:2 153,600
QVGA 320 * 240 4:3 76,800
WQVGA400 400 * 240 5:3 96,000
WQVGA432 432 * 240 9:5 103,680
WVGA800 800 * 480 5:3 384,000
WVGA852 854 * 480 409,920
至此为止,在Eclipse上就已经成功搭建Android开发环境了。
佳音北大青鸟安卓培训学校是一家由移动互联网的资深专业人士共同创立的培训学员。
佳音北大青鸟自成立之日起,就以促进和发展移动互联网化为已任,专注进行佳音android培训和佳音ios培训。
如今许多大学生都对Android和IOS等移动开发感兴趣,有自学的有进入像我们佳音北大青鸟这样的培训机构,今天就由佳音北大青鸟的老师来给基础薄弱的同学一点建议。
自学Android开发怎么快速入门:首先,想学习的同学需要一个明晰自己的目标,其实android开发也会分为应用、游戏、底层等等,每种不同的方向需要学习不同的知识。
比如要做APP的话j2me、web、sql等等都要学习,最好是从这些基础的支持开始,后面才有发展,佳音北大青鸟老师推荐大家先多看看java方面的教程。
可进入佳音北大青鸟教学视频进行学习。
要做游戏的话当然要在opengl、线性代数这些基础上再开始,做底层的话可能更多的涉及到嵌入式的驱动、LINUX方面,对不同的平台不同的硬件配置要有了解才能做好底层工作,这一部分可能对C基础、汇编、硬件的原理等等要求很扎实,要通常要多年的积累,熟悉kernel、文件系统、各类协议等等。
当然细分还有很多,这里不一一举例了,还是推荐去把基础学扎实了,当有料之后,看一下android相应的一些工具书等等,很快就能上手了,多多和技术论坛的朋友进行互动,写程序没有取巧的,在这些基础之上再去培训机构系统的跟着老师强化学习一下,和老师做一些开发项目,佳音北大青鸟安卓培训学校讲师都是具备多年项目实战背景、以及多年的佳音android培训和佳音IOS培训教学经验。
授课过程中,会针对不同类型的学员灵活转变教学方式,学员在掌握理论基础的同时,能够在实际操作中灵活运用。
相对于传统计算机程序语言来说,Android开发学习资源上还稍微欠缺一些,对于一些基础应用讲解还稍显匮乏,本篇所讲述的Android培训内容可以帮助大家更好的理解Android项目快速开发框架。结合之前所用的ormlite和hessian,再加上SAE已经支持JAVA,把服务端切换到JAVA,也就有了本文。使用hessian来做数据传输,ormlite来实现客户端与服务端的数据存储,极大的减少了CRUD工作。本文为探索贴,未正式用于大型项目,欢迎大家讨论使用!正文一、简介1.1 ormliteOrmlite[Object Relational Mapping Lite (ORM Lite)]对象关系映射精简版(精简版的ORM)提供了一些简单的,轻量级持久化Java对象到SQL数据库,同时也避免了复杂性和更多的标准的ORM包的开销的功能。支持数据库的jdbc调用,当然,最重要的肯定是它支持android原生的数据库api调用sqlite。——转载自这里。1.2 hessian使用方法参照本博两篇文章:[hessdroid]Android下使用Hessian与Java服务端通讯[hessdroid]Android下使用Hessian与Java服务端通讯的传值测试1.3 Android快速开发框架说明考虑如下几个特点:a). 客户端(Android)和服务端均使用Java语言b). 客户端(Android)和服务端均支持Hessian和ormlite框架c). 完整的支持面向对象开发:存储和交互传输二、准备2.1 开发环境为了便于同时开发Android和Java Web,这里下载的是Eclipse IDE for Java EE Developers版本,然后安装最新的ADT插件和TOMCAT插件。2.2 服务端应用服务器使用Tomcat,采用Java(JSP/Servlet)来实现服务端的业务逻辑,数据库使用Mysql。快速框架搭建推荐大家使用XAMPP(集成Apache、MySQL、PHP等,支持绿色安装)。2.3 客户端普通的Android环境2.4 通信与存储说明服务端与客户端通过Hessian进行数据交换,通过Ormlite保存数据库(通过JDBC保存到服务端的MYSQL数据库,也可以直接保存到客户端的sqlite数据库);三、代码3.1 项目工程截图(服务端)HOLib共用于客户端和服务端,保证接口和数据对象一致性。3.2 重点代码分析3.2.1 服务端web.xml?xml version="1.0" encoding="ISO-8859-1"?web-app xmlns="" xmlns:xsi="" xsi:schemaLocation=" web-app_2_4.xsd" version="2.4" servlet servlet-nameuser/servlet-name servlet-classcom.nmbb.ho.server.servlet.UserServlet/servlet-class /servlet servlet-mapping servlet-nameuser/servlet-name url-pattern/user.do/url-pattern /servlet-mapping listener listener-classcom.nmbb.ho.server.StartupInit/listener-class /listener/web-appStartupInit.javapublic class StartupInit implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent arg0) { try { TableUtils.dropTable(OrmliteHelper.getConnection(), POUser.class, true); //创建数据库 TableUtils.createTable(OrmliteHelper.getConnection(), POUser.class); } catch (SQLException e) { e.printStackTrace(); } } @Override public void contextDestroyed(ServletContextEvent arg0) { }} 代码说明:StartupInit可用于创建数据库表结构,这里用于测试,真实环境注意数据丢失问题。POUser.java@DatabaseTable(tableName = "nmbb_users")public class POUser implements Serializable { /** 用户编号,6位数字 */ @DatabaseField(generatedId = true) public int suid; /** 用户名 */ @DatabaseField(width = 30) public String username; /** 密码 */ @DatabaseField(width = 30) public String password; /** 昵称 */ @DatabaseField(width = 60) public String nickname; /** 200 正常 201 数据校验错误 202用户已经存在 */ public int status = 200; /** 用于放错误信息 */ public String msg; public POUser() { }} 代码说明:注意需要一个空的构造函数,其他请参考ormlite资料。UserServlet.java/*** 用户Servlet** @author 农民伯伯* @see **/public class UserServlet extends HessianServlet implements IUserService { @Override public POUser register(String username, String password) { POUser result = new POUser(); System.out.println("[UserServlet.register]..."); // 检测数据是否合法 if (isEmpty(username) || isEmpty(password)) { result.status = 201; result.msg = "用户名或密码不能为空"; } else { // 检测用户是否存在 OrmliteHelperPOUser db = new OrmliteHelperPOUser(); if (db.exist(POUser.class, "username", username)) { result.status = 202; result.msg = "用户名已经存在"; } else { result.username = username; result.password = password; db.create(result);// 入库 result.msg = "注册成功"; System.out.println("create user suid:" + result.suid); } } return result; } @Override public ListPOUser query(int suid, int startIndex, int pageSize) { return new OrmliteHelperPOUser().query(POUser.class, "suid", suid, startIndex, pageSize) ; } /** * 判断字符串是否为空 * * @param str * @return */ public static boolean isEmpty(String str) { return str == null || str.length() == 0; }}3.2.2 客户端(Android) public class UserActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void OnClickRegiger(View view) { new AsyncTaskVoid, Void, POUser() { @Override protected POUser doInBackground(Void... params) { String url = ""; HessianProxyFactory factory = new HessianProxyFactory(); try { factory.setDebug(true); factory.setReadTimeout(5000); //不设置会报 expected hessian reply at 0x48 factory.setHessian2Reply(false); IUserService basic = (IUserService) factory.create(IUserService.class, url, getClassLoader()); return basic.register("admin", "123456"); } catch (MalformedURLException e) { Log.e("UserActivity", "OnClickRegiger", e); } catch (Exception e) { Log.e("UserActivity", "OnClickRegiger", e); } return null; } @Override protected void onPostExecute(POUser result) { if (result != null) { if (result.status == 200) { //保存入库 new DbHelperPOUser().create(result); } Toast.makeText(UserActivity.this, "" + result.msg, Toast.LENGTH_LONG).show(); } }; }.execute(); }}代码说明:1、DbHelper在源码里给出。2、如果项目无法编译通过,请注意设置项目的字符编码、JDK版本、Android的版本。三、总结5.1 优点a). 完全面向对象开发b). 降低项目的复杂度,减少引入其他框架所带来的复杂性c). 非常适合一个开发服务端和客户端充分的利用的框架的特点,提交开发效率,适合中小型项目快速开发。5.2 缺点a). 注意服务端与客户端共用id的问题5.3 其他a). ormlite支持标准的JPA助记符,这里。这样服务端采用Hibernate应该也是可以的,有时间可以做一个整合例子看看。学习语言同做事情一样,想通其中的关系,就会事半功倍,对语言要深入的理解,
开门见山的说,Android确实已经没有了几年前的风光,当时喊出的占据生活里的每一块屏幕的口号,或许已经没有多少人还记得。
从事安卓开发也有几年的时间了,回想起最开始学习安卓的时候,老师跟我们一帮菜鸟说,学安卓的人,要有一股子“情怀”,我很喜欢这个描述。我觉得老师口中这个情怀,也应该是所有前端或者说是面向用户的研发人员都需要的。
回归正题。
关于安卓开发的未来,不知道从什么时候起,各种论坛、自媒体,唱衰安卓的早已屡见不鲜,刚开始我确实还很担心,担心什么时候会因为发生了什么事失去自己的工作,准确来说,甚至我也害怕失去这个行业。
我看过很多互联网大佬的博客,他们大多都有讲过这个问题,我觉得说得也很清晰,并非是市场饱和了,而是,市场对安卓从业人员的要求更高了。这个观点,我觉得是找到了根儿。
分析安卓开发的未来,可以先从市场对移动端的要求来说,我觉得就一个字,快。
快速开发,快速更迭。
现在的市场跟几年前移动互联网方兴未艾的时候不一样,那个时候真的是一个APP就可以创业。但是现在,人工智能、大数据、大前端的趋势下,移动端早已不再是Android和IOS的天下,小程序、公众号、混合开发等等新技术新方式正在成为新宠,甚至还有部分企业打出“去安卓化”的口号。
那么,相比于那些可以快速迭代优化的移动端方案,安卓真的失去了竞争力了么?我觉得不然,虽然说安卓在应用层面的发展趋于饱和,但是未来,安卓在人工智能、与5G结合的产业,以及IOT行业,智能家居等全新的移动生态中,仍然大有可为。智慧社区、智慧物业、智慧政务、智慧景区等全新的智慧生态场景,正在逐步改变我们过去的生活方式。
手机早已不是Android的主战场了。
除了谈安卓未来的发展,我也想谈谈我对技术的看法。
研发工程师难以突破瓶颈的原因,未必在技术层面。经常能听到有的人抱怨自己的工作好像是边缘业务,总觉得自己做的工作不过是后台的一个“窗口”,好像安卓只是在做一些协助后台操作数据库的重复性工作。
我相信应该也有人有同样的想法吧,因为我也曾这么理解过,但是一件事改变了我的观点。
我举一个例子。
两个人同时负责一个项目的研发工作,产品经理和UI出了完整的原型图和设计图。甲看了看,觉得没有什么难度,就是简单的几个页面,调几个接口的事儿,于是风风火火地开始搞。乙觉得,虽然页面不多,功能也不算复杂,但是有几个地方的交互产品设计得很巧妙,可能单纯地实现那些交互细节都要花很长的时间。没几天,甲负责的模块就做得差不多了,于是就放松了,等乙做完了,各自自测之后,就提交测试了。
到这里我觉得不用继续描述,明眼人就已经知道结局。
通过这个例子我想说,研发人员要对自己的作品负责。
的确,如果说严格按照产品的设计去做了,哪怕是客户用着不舒服,那也是产品经理背锅,又或者说测试人员测完APP上线了,上线之后出了BUG,流程上也会先追究测试的责任。但是我觉得安卓研发人员需要对自己拿出手的东西有一种期许,就是用户用着自己完成的APP的时候,会觉得,嗯,很好用。
好用。
做到“好用”这两个字其实很难。
安卓不仅仅是安卓,学技术的本身不是为了炫技,而只是为了解决用户的需要,急人所急,就这么简单。对个人来说,如果可以在一个领域深耕,做到极致,努力成为这个方向的专家,那么不存在安卓已死的论调。同时,研发工程师同样需要产品思维,从更高的角度去思考打磨自己的作品,培养自己的“情怀”。
1.下载:
点击右边这个地址 h hub.com/TommyLemon/Android-ZBLibrary
点击DownloadZip即可。
2.解压
3.用ADT-Bundle(集成了ADT插件的Eclipse)或 AndroidStudio打开
ADT打开
File Import Android Existing Android Code Into Workspace browse
打开 解压后的文件目录(Android-ZBLibrary-master)下的ZBLibrary(ADT)目录 Finish
AndroidStudio打开
File Open 打开 解压后的文件目录(Android-ZBLibrary-master)下的ZBLibrary(AndroidStudio)目录 OK
4.运行
ADT运行
右键ZBLibrary Demo Run as Android Application
AndroidStudio运行
Run Run app
如果不能成功运行,点击以下链接查看解决方法
.cnblogs.com/tommylemon/p/5426583.html
5.将自己的项目依赖ZBLibrary
ADT依赖
1)在你的项目的workspace下打开ZBLibrary,方法和第3步一样
2)右键你的项目 Properties Android Library栏目中点击 add 选择ZBLibray OK OK
AndroidStudio依赖
1)打开你的项目 然后打开ZBLibrary,方法和第3步一样
2)右键app Open Module Settings Dependencies add(点击"+") Module Dependency 选择 ZBLibrary OK OK
3)右键app Open Module Settings 选择app Dependencies 如果有android-support-v4包,选择并点击 "-" 移除 OK,没有就 Cancel
4)右键app Open Module Settings 选择ZBLibrary Dependencies
①如果有android-support-v4包,选择并点击 "-" 移除
②点击"+" File dependency 选择libs目录下其中一个 OK
③添加libs下其它jar包依赖,方法和②一样 OK
6.重复第4步
7.查看Demo
ADT查看
打开ZBLibraryDemoApp,方法和第3步一样
AndroidStudio查看 (Android-ZBLibrary-master下的ZBLibrary(AndroidStudio)目录)
Windows下在资源管理器中查看,Mac下在Finder中查看
你这个问题有些笼统,一个完整的app有简单有复杂,不同的app应用功能的差异也导致不同的技术实现或者算法模型。大体来说,一个app从设计到最终实现需要你懂得以下几个必要方面: 1、前期需求规划与信息、交互设计——你需要制定出一个完整的需求文档,功能文档,流程图,时序图。2、交互设计、UI设计——设计出基本且完善的原型图和app基础的交互设计效果,之后再根据这些设计出完整的UI界面并学会切图,一些需要做自适应的素材图片需要做点9patch。 这里还需要你懂得px,pt和dp之间的换算,屏幕密度的换算和相互之间的系数,以便你的app能完美适应不同分辨率设备。其中交互设计需要你懂得很多人机操作的技巧经验,掌握Axure等交互工具的使用,UI设计需要你掌握Photoshop和Illustrator等操作。3、使用ADT之类的开发环境进行app开发,你最基本的也得掌握java语言,熟悉android环境和机制,这里面涉及面广,请根据项目自行学习相关知识。4、如果不是单机版的app,需要用到服务器,那你还得掌握WebService相关知识和开发语言,常用的有ASP.Net,PHP,JSP等。5、熟悉并能开发数据库。6、某些功能需要做算法,这还需要一定得专业知识,尤其是数学基础。7、熟悉API接口开发,这里包括你自行开发API的能力以及调用第三方API的经验。8、熟悉TCP/IP,socket等网络协议和相关知识。9、熟练掌握App发布的流程,真机调试技巧,证书,打包,上架。App开发其实不一定适合一个人搞,太费劲,除非是一个单机版的小应用,或者利用现成的api开发简单的第三方应用,否则还是让一个团队来完成各自擅长的领域。