android集成开发环境,android java开发环境

  android集成开发环境,android java开发环境

  很久以前,听人说以后会流行安卓。作为一个有前瞻性的人,对它有所了解,会是一个很好的转型机会。Java太成熟饱和了。现在市场上各种安卓手机层出不穷,网上各种安卓视频系列跟进。Android突然成了热门话题。一开始是出于个人兴趣学的,感觉很好用。后来,我发现有很多问题,而且在我的工作中也很困难。在纠结和痛苦中慢慢想通了一些经验和规律!

  1.android作为视图层,必须使用webservice接口实现与服务层的低耦合。目前还没有完美的插件。我试过axis的安卓包(也是有兴趣的人做的)。用了之后感觉很麻烦,尤其是复杂数据类型的传输。而且bug很多,我还要改别人的源代码,这无疑增加了团队的学习成本和开发难度。无奈之下,我自己做了。Android使用Apache的httpclient发送交互请求,定义xml接口传输数据,接收也由dom4j解析。经过测试,dom4j在2.2中非常支持,2.1中的一些解析用法不支持,但大部分都可以使用。你可能明白这一点。没错,后端使用servlet机制,然后使用java反射根据xml文件的描述动态调用指定的spring服务和方法。这些就够了,你可以用自己的方式做更灵活的扩展。

  2.httpclient确实是个好东西,但是作为无状态访问协议,http无法保存用户会话信息。于是我打开了axis的源代码,发现它原来是把用户的首次访问信息保存到了一个特定的文件中。然后根据心跳机制,定期检查,塞翁失马焉知非福。于是我在数据库session表中保存了用户的首次访问信息,并编写了一个存储过程删除登录时间与当前时间相差30分钟以上的记录。每次用户登录时,它都会匹配会话表。如果没有记录,他会立即退出。这样就方便简单多了,所以用户每次访问系统的时候,都要带上xml文件中系统给他的序列号,也就是sessionid,称为完整会话。

  3.在Android系统上画图是个麻烦的工作。当初我们组搜遍了所有的画图插件,没有办法找到一个特别满意的。要么是用起来太麻烦,要么是找不到自己想要的效果,所以很累,没有想法。问了一些j2me老程序员,他们建议如果不是专业的游戏制作人,用服务器做统计图会更合适。于是我们抛弃了所有的android画图插件,使用jfreechart在服务器上画图,图片http流至手机显示。当然,因为2.1系统不支持flash,所以我们没有考虑把它们做得更漂亮,图表直观明了。

  4.UI是个难点,而且为了适应不同的分辨率,之前用px单位很成问题,后来改了dip定位,就好很多了。之后大面积使用了tab风格,统一了风格。难点很多,比如给tabhost添加样式动态改变效果,透明按钮,listview去除水平线,添加箭头,添加动态灯光和下拉翻页,还有手势滑动,各种widget特效和动画截屏。为了少走弯路,我们反编译了QQ、飞信、58、赶集、飞机票、墨迹天气等所有主流安卓布局和美化用法。也学到了很多有用的经验,但还是觉得布局难做,美工无法直接介入,模拟器测试很没效果。没办法,只好用真机测试ui,速度快了很多。

  5.安卓的客户端更新功能,相信只有做过的你才能知道其中的辛酸。一是做好断点,二是做好数据库初始化,三是做好签名,四是做好版本检查算法,显示动态进度条和百分比。断点续传很容易,但是数据库初始化比较麻烦。我们的做法是将sqlite库文件直接从raw复制到sd卡,设置sqlite的读取库路径指向它。这样感觉更好。一开始不知道签名,但是每次盖上都提示安装未完成。后来才知道,为了保证应用的唯一性,就跟身份证一样,其他的都没什么作用。这和塞班的签名不是一回事,打包的apk必须保证在同一个签名文件中,才能互相覆盖安装!

  6.可以在webview中调用后端的java代码,类似于dwr函数。但是这个功能已经很少用了,不稳定,要考虑它的兼容性。既然android提供了这么多ui控件,说明webview是替代不了的。毕竟还是需要调用底层服务6。应谨慎使用webview。

  7.android也应该遵循mvc的编程规范。activity只负责处理跳转、UI和简单的数据验证。业务逻辑放在服务类中,sqlite操作略有封装。做一个类似jdbcUtil的模板类,提供添加、删除、检查、分页等方法,这样dao操作就完美多了。我想转行做android开发,做java程序员。最大的障碍不是框架里的api或者Google sdk,而是java基础。通过写程序发现,开发手机的程序员基本素质应该是过硬的,尤其是在集合、线程、异常、io、http方面。否则,一个看似简单的函数可能会漏洞百出,甚至效率低下,可读性差。基本上他们回头看都看不懂自己写的是什么,要完美的写出接口和抽象类,包括匿名内部类。

  熟悉类包的基本结构,及时优化重构自己完成的函数的代码,让自己和别人读起来都像诗一样,清晰美观。没有web框架那么成熟,大家都用ssh,遵循起来很标准。一般根据图片看不出个人技术!我想说的是,想成为android开发者的程序员要特别注意java基础!

  8.此外,地图导航也是一大亮点。现在不管做什么功能都会用地图导航,吃喝玩乐,用户想知道在哪里。目前百度和谷歌都推出了安卓地图接口,我们用的是arcgis。幸运的是,api并没有被广泛使用,而且很简单。官方有现成的例子,让我这种把arcgis当两把刷子的人也能有所作为。

  9.写android代码最大的斗争就是测试和发现bug。模拟器非常慢,无论哪里修改都要重新编译部署。调试失败经常发生在ADT插件中。要加快开发速度,首先要关闭eclipse的自动编译,杀死模拟器中无用的进程,关闭一些无用的手机特效,模块化开发。这使得裁剪整个方法体并将其放入junit进行测试变得很容易。有个模拟器叫Youwave_android,用起来很快。如果真的没有真机,可以用它来过渡一下。没事也可以多下载一些安卓软件,学习一下别人的系统是怎么做的。至少可以提高UI美观度。有人建议应该在linux平台上开发。如果你以前没用过,最好不要为难自己。我很想尝试推荐ubuntu10中文桌面版。虽然速度快不了多少,但是对你来说是一个逐渐锻炼和提升自己的好机会。技能越多,压力越小!

  10.有些小技巧还是挺实用的,有些adb命令绝对比用adt插件快。新的sdk升级包把它放在platform-tools目录下;模拟器有快捷键ctrl F11或键盘home;如果您的调试失败,请尝试终止DDMS中的进程并重新部署它。如果没有,你必须重启模拟器。如果你突然发现在gen目录中没有生成R.java文件,那么就显示问题,看看项目中是否有错误。一般来说,要么是包路径有问题,要么是程序内部布局文件有错误。如果仍然无效,只需关闭eclipse并重新打开它。有时候adt会有这样的bug。

  Adt插件和sdk升级包依赖于版本。如果使用8.0以上的adt插件,记得使用最新的sdk升级包,否则会报错adb命令找不到。升级插件不要无所适从。最新的10插件只能在3.5以上的eclipse上运行,并没有带来太大的惊喜,只是支持更高的sdk版本;安卓程序本身就有缺陷,不要钻太深与其抗衡。如果你到不了那里,你就想走别的路。只要简单朴实,程序就可以健壮。另外,多加几个android开发者论坛社区,贴出源码求助。这个东西,技术,跟他没关系,只有技术!

  最后,这里是真机配置的安装说明。我用的是魅惑9,其他品牌的手机应该也有。好处不多说了。自己看吧!

  虽然目前android很火,但是听说linux社区管理员删除了Google Android的源代码,还说不是完全开源,有欺骗开源社区的嫌疑。如果是这样的话,那么Android将会失去很多开发者的信任和支持。总之不是很好的结果。真心希望接下来的Google百度时间看到的不是大量复制粘贴的hello world实例,而是开发者之间分享传递的真实经验,所以开源才是硬道理!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • android调用webview方法,androidwebview是什么,Android 中 WebView 的基本用法详解
  • android传感器高级编程,Android传感器,Android编程之光线传感器用法详解
  • android.app.Dialog,android自定义dialog对话框,Android开发笔记之-Dialog的使用详解
  • android 图片视频轮播框架,androidlayout轮播图,Android实现炫酷轮播图效果
  • android里的viewpager,安卓自定义view流程,Android自定义引导玩转ViewPager的方法详解
  • android里的viewpager,android viewpager详解
  • android里的viewpager,android viewpager详解,Android自定义超级炫酷的ViewPage指示器
  • android调用webview方法,androidwebview是什么
  • android设置控件宽度,android获取屏幕宽度和高度
  • android设置控件宽度,android获取屏幕宽度和高度,Android中获取控件宽高的4种方法集合
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程,android蓝牙简单开发示例教程
  • android菜单栏,android菜单控件
  • 留言与评论(共有 条评论)
       
    验证码: