如何十招成为高效能人士一个偷懒又高效的Android开发人员

> 博客详情
我敢肯定你对这个标题肯定心存疑惑,但事实就是如此,这个标题完全适合Android开发人员。据我所知, Android程序员不情愿写 findViewById()、点击事件监听等重复率较高的代码。那我们如何才能缩短编写业务逻辑代码的时间,并且避免写那些重复的代码呢?所以让我们来成为一个能偷懒又有高效率的Android程序员。想知道怎么做吗?不用急,接下来我就会写到。
有许多第三方的库、框架和解决方案可供我们使用。出于种种原因,我们并不知道这些库或者知道但还没用过。有的开发者开发了自己定义的库或者并不想使用第三方的库。如果我们在应用程序开发的过程中使用一些第三方库,也许可以提高程序的可兼容性、漂亮的UI界面、让代码变得整洁等等。;另外,在Android应用开发过程中,我们不可能有过多的精力和时间去研究应用安全这块,要学会借力!所以最好的办法就是借助,这样既可以节省下很多时间又可以保证应用的安全,偷懒又高效,两全其美!
下面,让我们来讨论下“依赖注入函数库”。
什么是依赖注入?
依赖注入是一种软件,无论是在运行时还是在编译时,允许删除、改变硬编码依赖性。[来自](维基百科资源):
一些常用和普遍的依赖注入库有:
RoboGuice:
Roboguice是一个用于Android应用的依赖注入框架,使用Google官方的Guice库位极大地简化了Android的依赖注入。让你的Android应用开发之路更加平坦顺利,编程更加简单有趣。
当你调用 getIntent(),getExtras()这些函数时你是否经常忘记检查是否为Null?RoboGuice可以帮助你。初始化TextView有必要调用findViewById()吗?不用,RoboGuice已经为你完成了。
通过使用RoboGuice,你可以注入View视图控件、资源、系统服务或者其他任何对象。RoboGuice能帮你精简应用程序的代码。代码越少意味着出现问题或bug的次数也就越少,从而可以把更多的精力花在项目中那些需要编写或修改的部分,使得阅读代码更加容易。
让我们来看看各种RoboGuice 库的使用方法。
使用RoboGuice库 :
控件注入:用@InjectViews方法初始化控件,例如:@InjectView(R.id.textview1)TextView textView1。
资源注入:用@InjectResources方法初始化资源,例如:@InjectResource(R.string.app_name)String name。
系统服务注入:用@Inject方法初始化并获取系统服务,例如:@Inject LayoutInflater inflater。
POJO对象注入:用@Inject方法注入并初始化POJO对象,例如:@Inject Foo foo。
要使用RoboGuice,你需要下载JAR文件并把他们添加到环境变量中:
我们来看看一个简单的一般事件代码:
&span&style="font-family:Afont-size:14"&&span&style="font-size:14"&public&class&TestActivity&extends&Activity{
&&&&TextView&textView1;
&&&&TextView&textView2;
&&&&ImageView&imageView1;
&&&&String&
&&&&Drawable&icL
&&&&LocationManager&locM
&&&&LayoutInflater&
&&&&NotificationManager&notifyM
&&&&@Override
&&&&protected&void&onCreate(Bundle&savedInstanceState)&{
&&&&&&&&//&TODO&Auto-generated&method&stub
&&&&&&&&super.onCreate(savedInstanceState);
&&&&&&&&setContentView(R.layout.layout_test);
&&&&&&&&textView1&=&(TextView)&findViewById(R.id.textView1);
&&&&&&&&textView2&=&(TextView)&findViewById(R.id.textView2);
&&&&&&&&imageView1&=&(ImageView)&findViewById(R.id.imageView1);
&&&&&&&&name&=&getString(R.string.app_name);
&&&&&&&&icLauncher&=&getResources().getDrawable(R.id.ic_launcher);
&&&&&&&&locManager&=&(LocationManager)&getSystemService(Activity.LOCATION_SERVICE);
&&&&&&&&inflater&=&(LayoutInflater)&getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
&&&&&&&&notifyManager&=&(NotificationManager)&getSystemService(Activity.NOTIFICATION_SERVICE);
&&&&&&&&textView1.setText("Hello&World!&RoboGuice&demo");
}&/span&&/span&
再看看使用RoboGuice精简代码后神奇之处。
使用RoboGuice
你先要继承RoboActivity或者RoboFragment,才能使用RoboGuice的依赖注入功能。
&span&style="font-family:Afont-size:14"&&span&style="font-size:14"&public&class&TestActivity&extends&RoboActivity{
&&&&@InjectView(R.id.textView1)&TextView&textView1;
&&&&@InjectView(R.id.textView2)&TextView&textView2;
&&&&@InjectView(R.id.imageView1)&ImageView&imageView1;
&&&&@InjectResource(R.string.app_name)&String&
&&&&@InjectResource(R.drawable.ic_launcher)&Drawable&icL
&&&&@Inject&LocationManager&locM
&&&&@Inject&LayoutInflater&
&&&&@Inject&NotificationManager&notifyM
&&&&@Override
&&&&protected&void&onCreate(Bundle&savedInstanceState)&{
&&&&&&&&//&TODO&Auto-generated&method&stub
&&&&&&&&super.onCreate(savedInstanceState);
&&&&&&&&setContentView(R.layout.layout_test);
&&&&&&&&textView1.setText(name);
}&/span&&/span&
这么一对比,我想你肯定明白了为什么要使用RoboGuice?再来看看有哪些好处:
使用RoboGuice的好处
不需要初始化控件,如有需要就用@InjectViews。
不需要初始化系统服务,如有需要就用@Inject。
不需要初始化像Drawable,string以及其他的资源,如有需要就用@InjectResource。
以上实践能帮助你精简代码。
越少的代码,越少的问题和bugs。
少量的代码让Android开发人员省力同时,也让他们能更专注于实际的业务逻辑。
RoboGuice和ActionBarSherlock
正如我前面提到的,你得在RoboActivity和RoboFragment中继承其中一个才能在Activity事件或Fragment中使用RoboGuice。但是如果你已经在项目中使用了ActionBarSherlock去编译呢?那问题就在于,你已经继承了SherlockActivity或SherlockFragmentActivity中的一个。现在问题是,你不能同时使用RoboGuice和ActionBarSherlock。
解决方法是,为Activities和Fragments定义一个基类。然后你就能同时使用RoboGuice和ActionBarSherlock了。可以借此了解下
你可以在这里下载一些基类:或者下载JAR包也是一样:,你可以任选一个添加到你的项目。
人打赏支持
码字总数 138944
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥如何成为一个偷懒又高效的Android开发人员(2)
Genymotion是一个更快的Android模拟器,可以用来做开发,测试甚至展示App,它可以控制虚拟传感器如GPS、电池电量还有加速器。事实上Genymotion刚出了第一个商业版2.0.0,仍然有很多问题要修复,我建议这个模拟器配合Eclipse或者Android StudioIntelliJ IDE 使用,以一种更快的方式去开发和测试App。
在前一篇文章中,我们讨论了关于依赖注入和RoboGuice库。今天我们要讲的是一款很棒的测试和开发工具。
我从Android源码1.5开始做开发一直到现在,经历了Android和Android模拟器的发展过程。我觉得速度是提高了一些,但是没有我们想象中的那么流畅和好用,我相信很多Android开发者都厌倦了打开本地模拟器,然后进入加载界面,然后各种无响应和卡顿。虽然通过快照 (snapshot)可以加速。
补充一下,因为我也做Windows程序开发,我发现Windows phone的模拟器很快,表现得很出色。可惜我没有做过IOS的开发,但是现在我已经了解了IOS的模拟器也很出色。所以如果和IOS和Windows的 模拟器相比,Android
Android系统很特别,App所以今天我决定写一篇关于Genymotion模拟器的文章,我觉得它很非常不错。自从这个项目启动后,我就一直和大家分享,大家也很喜欢。所以我觉得应该把它分享给本站的读者。 Genymotion模拟器 更快的Android模拟器
问:你希望不用真机或者平板就可以运行App例子吗?
问:如果你是一名开发者,你希望能更方便地测试App吗?
对以上两个问题,这里就有一个简单的办法:使用Genymotion模拟器。
这是一个测试和演示App的一个很快的模拟器,它带有一个友好的用户界面,可以实现控制各种虚拟的部件和传感器,比如电池、GPS,还有各种加速器,它还包含了一个强大的命令行工具可以构建更加复杂的测试环境。
免费开源的软件
事实上这是基于一个开源项目 AndroVM的一个测试版,现在已经出了商业版本,旨在为运行android提供一个尽可能高效的虚拟环境。所以它是免费开源的,之前是完全免费的,现在有了一些收费的服务,不过免费版已经相当不错,也有很多我们喜欢的特性,比如电池管理部件,GPS部件和摄像头部件。
使用要点和模拟器准备
假设你以前已经玩过VirtualBox,如果没玩过可以点击前面的链接。Genymotion模拟器需要在你的机器中用VirtualBox运行,这就是它比本水草玛瑙 mnwg.net地模拟器更快的原因。如果你之前打开过模拟器,那再次打开时就不用重新加载了,它会加载之前的状态。这点很像本地模拟器中的 snapshot 特性。
题外话:早期的Genymotion版本提供了带有Google应用的模拟器,所以用户就可以从Google Play商店上下载应用和游戏。但是在11月13号发行的Genymotion2.0.0版本中不再包含Google应用和ARM类库支持。对于 Google应用官方正在和Google沟通,希望仍然可以在Genymotion上加回google应用,详情请看:Genymotion Changelog。
不过现在Genymotion的模拟器已经没有Google应用了,我在StackoverFlow上找到了原因:How To Add Google Apps and ARM Support to Genymotion v2.0+.
除了速度和性能外,Genymotion还提供了很多好用的特性:
- 跨平台支持
因为它是基于VirtualBox运行的,所以在Windows,Mac和Linux都可以运行,不必安装任何东西只需要从Genymotion的官网上下载它然后注册一个账号来下载不同的模拟器版本即可。
传感器控制
它可以人性化地管理模拟的传感器如电池电量,GPS还有加速器。举个例子,如果你在开发基于GPS的App,需要测试不同的地理位置,只需要在地图上拖拽来移动地图到对应的位置,如果需要移动X和Y的坐标,也是一样的操作。
支持Google应用商店服务
如要测试带有Google Play Service SDK的应用,需要下列配置:
一个可以兼容Android2.3或以上版本并带有Google Play商店的设备;
带有AVD,可以运行android4.2.2或者以上的android模拟器;
这里Genymotion为一些ROM提供了Google Play应用的集成,就像真实设备一样。我清晰记得曾经花了几天来测试一个用了Google Map API V2的APP,我们就是用Genymotion来测试的。 在开发环境中完美集成
Genymotion为新建虚拟设备提供了一个简洁的UI操作,你可以单独使用或者安装Eclipse或Android StudioIntelliJ 插件。
相关链接:
用户手册:https:pagedoc
有一个更快的模拟器并不意味着可以写程序更快,只是不必在真机上测试而已,它可以帮你以一个更快的方式来开发和测试App;
在Genymotion上的Google+ post说,已经支持Android4.4预览版,但是可能会有bug;
目前官方还在开发一些ROM,并不断测试和修复bug。
Genymotion是一个更快的Android模拟器,可以用来做开发,测试甚至展示App,它可以控制虚拟传感器如GPS、电池电量还有加速器。
事实上Genymotion刚出了第一个商业版2.0.0,仍然有很多问题要修复,我建议这个模拟器配合Eclipse或者Android StudioIntelliJ IDE 使用,以一种更快的方式去开发和测试App。【编辑推荐】适用于iOS开发者的Android开发技巧高效开发Android App的10个建议Android开发学习路线图_移动技术半月刊第29期_给iOS开发者的Android开发技巧_移动技术半月刊第30期_美女程序员在国外:余露,Android开发者在新加坡【责任编辑:闫佳明 TEL:(010)】
Absolute C++中文版(原书第2版)
本书是讲解C++语言程序设计的优秀教程。全书围绕C++语言来组织,开始章节介绍编程的普通感念,接下来详细介绍C++中的继承、多态
看过本文章的还看过。。。
如何成为一个偷懒又高效的 android 开发人员(2) genymotion 是一个更快的 android 模拟器,可以用来做开发,测试甚至展示 app,它可以控制 虚拟传感器如 gps、电池.........
如何成为一个偷懒又高效的android开发人员 2_互联网_it计算机_专业资料。如何成为一个偷懒又高效的 android 开发人员 我敢肯定你对这个标题肯定心存疑惑,但事实就.........
xxx简历-android开发2年_简历_求职职场_实用文档。android简历经典模板 ...? 自我评价从完成的工作中获得乐趣,静下心来专研不懂得问题,珍惜每一 个能够.........
android开发从零到实战视频教程(共100个课时) 2_其它课程_初中教育_教育专区。...3、android 中的消息传递者 intent 的使用 4、android 中如何访问网 络,获得.........
android体感开发指导手册2—android xtion sdk_计算机软件......
一个界面之间的数据传输 bundle 的处理,当传递一个...(时间戳+ 代理商密码+完整 body(明文) ) ...好大夫在线 android 客户端开发周期:2 个月 开发.........
android系统应用开发作业2_计算机软件及应用_it计算机_专业资料。android 系统应用开发作业 2 单项选择题第 1 题 onpause 什么时候调用? a、当界面启动时 b、当.........
第2讲-android程序开发基础_计算机软件及应用_it...? 开发者还可以使用应用程序框架层的api实现自己的...dalvik被设计成一个设备可以同 时高效地运行多个.........
实验2 android应用界面开发(1)_计算机软件及应用_it计算机_专业资料。很不错...4 个 textview 叠在一起, 颜色的属性值从外到 内依次为:#0000bb、#........
是一个侧栏 控件和一个快捷分享工具,以方便开发者...(为 null 或文件不存在表示不分享图片) i.put...1 <activity 2 android:name=cn.sharesdk.demo..........
android开发精要2--android组件模型解析_计算机软件及应用_it计算机_专业资料。...对于开发者而言,这样不仅降低了开发成 本,还提供了最好的用户体验,真可谓一举.........
的一个模拟器,这大 大降低了开发人员的开发成本,...$ git checkout remotesoriginandroid-goldfish-..._fb_probe(struct platform_device *pdev)
实验3、android 应用的界面开发(2)一、 实验目的 1、 掌握常用界面组......
android 程序【实验类型】验证性(必做) 【实验目的】熟悉 android 开发环境的搭建 掌握用 eclipse 开发 android 程序的流程 【实验内容】 教师签名 实验成绩.........
下面以64位为例:第一步:下载并安装 java sdk(...另外,安装完毕重启后,往往又会追加新包,最好也要...搭建android 2 开发环... 16页 免费 android.........
安卓开发技巧(2)_计算机软件及应用_it计算机_专业资料。安卓开发技巧(2)安卓开发经验总结 2 api 权限错误提示解决方法: 报这么一个错误: [html] view plaincopy.........
第03章 android应用的程序结构及工作原理(2学时)_工学_高等教育_教育专区。android手机开发移动平台及其应用 第3章 android应用程序的结构及工作原理 1 android工.........
android应用开发工程师 个人简历模板_简历_求职职场...反馈和协助处理游戏异常状况,并于玩家做好沟通。...文档贡献者 skaezh 贡献于 12 相关.........
android的资源_计算机软件及应用_it计算机_专业资料。android资源第...国际化英文单词为:internationalization,又称i18n,i为因为单词的 第一个字母,........
android 新浪客户端开发教程(完整版)_计算机软件及应用...给项目做新浪授权和分享,又感觉对初学者有写帮助,...这个功能对使用者来说就是一 个持续1、2秒钟的.........
■ 相关热门内容
■ 热门推荐页面已拦截
无锡网警提示您:
该网站已被大量用户举报,且存在未经证实的信息,可能会通过各种手段来盗取您的账号或骗取您的财产。}

我要回帖

更多关于 python高效开发实战 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信