Android入门还是很简单的,看两本书,翻阅几篇文章,搭建了开发环境就算入门了。可是怎样开发一款完备的android应用呢,开发一款高端的android应用又需要那些知识呢,作者根据几年的开发经验做了一点总结,有不足之处也请读者补充。

一、网络开发技能

开发的应用肯定会联网,在移动互联网时代,单机应用会越来越少。如果我们开发的应用缺少与服务器的交互,内容上不会丰富,更有可能的是我们无法控制到应用,得不到用户及用户反馈。网络连接中用的最多的无非是Http或者Tcp。Android中http使用提供了三个包,我们常用的是HttpClient、HttpURLConnection。网络上也有对http的封装包,例如volleyandroid-async-http,volley使用的HttpURLConnection,android-async-http使用的HttpClient。虽然http的封装包使用起来都很简单,但是我们也应该了解一下他们的区别,作者有一篇文章是介绍HttpClient、HttpURLConnection区别的,希望对您有帮助,《AndroidHttp通信 HTTP Client与HttpURLConnection的区别》

volleyandroid-async-http都是非常简洁、伟大的http开发库,android-async-http有详细的开发文档,作者不做详细的说明。 Volley是Ficus Kirpatrick在Gooogle I/O 2013发布的一个处理和缓存网络请求的库,能使网络通信更快,更简单,更健壮;他没有使用文档,作者有几篇文章介绍了volley的使用。

《Google I/O 2013 – Volley: Easy, Fast Networking for Android》

《网络通信框架Volley使用详细说明》

《Asynchronous HTTP Requests in Android Using Volley》

《Android UI开发第三十六篇——使用Volley加载图片列表》

二、丰富的UI技能

客户端开发不同于服务端,服务端只处理逻辑,客户端即处理逻辑又处理界面,而且界面又是多变的,不同的客户端,界面肯定不一样,相同的客户端,不同时期的界面也可能不一样,所以客户端开发者总感觉在修改界面,不是在改界面就是在改界面的路上

我们处在一个以“用户体验至上”的时代,产品经理经常会以此为理由修改已经确定的UI,为了应付多变的需求,我们必须储备尽可能多的UI处理技能。从最简单的Button、TextView、EditText到高级点的Listiew、Tab、ViewPager,我们都应该掌握,我们还应该跟上时代掌握ActionBar、Fragment等等,自定义View的技能也必不可少。作者有一个UI开发专栏,介绍到了很多常用UI知识,分享给大家。

Android UI开发专栏

三、保证应用安全技能

应用安全是我们重点关注的,尤其涉及到支付相关应用。我们不希望自己的应用遭破解、也不希望用户被钓鱼、更不希望出现数据漏洞,那我们就需要提高应用安全技能。

应用安全会涉及到代码安全、客户端与服务端通信安全、应用内部组件通信安全、数据库数据安全等等,作者也提供了一个专栏来介绍应用安全,内容还不够多,以后会再补充一些。作者也不是专业做安全的,难免有不足之处,也请读者谅解。

android应用安全

四、NDK技能,适当的使用so

Android平台从诞生起,就已经支持C、C++开发。虽然Android的SDK基于Java实现,但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台上,"Java+C"的编程方式是一直都可以实现的。涉及到注重性能,或比较底层的程序都会使用C/C++开发,例如音视频编解码。有的应用会使用so文件,以保证应用安全。

NDK全称是Native Development Kit。NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。官方关于NDK开发的文档相对较少,作者也总结了几篇文章,帮着初学者入门。

Android JNI入门

JNI专栏中包含了JNI入门、C调Java、Java调C、

android开发中,使用到的知识不只是上面的四点,还会有数据库相关、Broadcast、Service等等,但是上面的四点在使用过程中更丰富、多变;而数据库相关、Broadcast、Service等比较简单、单一,在每个应用中的使用方式都是一样的。在学习中我们更应该注重以上四点知识的积累。有不足之处,望读者留言补充。

博主有幸成为2013年度博客之星的候选人之一,期待你的一票,谢谢您的支持。

投票猛击

http://vote.blog.csdn.net/blogstaritem/blogstar2013/xyz_lmn

/**
* @author 张兴业
*  http://blog.csdn.net/xyz_lmn
*  iOS入门群:83702688
*  android开发进阶群:241395671
*  我的新浪微博:@张兴业TBOW
*/

开发一款高端大气上档次的android应用需要必备的知识——记于2013年末的更多相关文章

  1. 利用React Native 从0到1 开发一款兼容IOS和android的APP(仿造京东)

    最近有一部电视剧叫做<微微一笑很傻逼>里面有个男猪脚,人们都叫他大神~我觉得吧~大神是相对的~所以~啥事都得谦虚! 好了 今天介绍的是如何从0到1利用React Native开发一款兼容I ...

  2. 开发一款完备的android应用所必备的知识

    原文:http://blog.csdn.net/xyz_lmn/article/details/17575709

  3. [Android游戏开发]八款开源 Android 游戏引擎 (巨好的资源)

    初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引 ...

  4. html+css+js+Hbuilder开发一款安卓APP,根本不用学Android开发!

    我们知道,要做一款安卓APP,咱们得先学安卓开发语言,例如java,前端后端.那么没有这些开发语言基础,咱们怎么做呢?其实现在有比较好的开发方案就是做webAPP,咱们可以用web前端知识构建安卓客户 ...

  5. 高端大气上档次!10个精美的国外HTML5网站欣赏

    这篇文章挑选了10个高端大气上档次的 HTML5 网站分享给大家.作为下一代网页语言,HTML5 加入中众多的语义化标签,例如 video.audio.section.article.header.f ...

  6. 移动周报:十款最实用的Android UI设计工具

    上一周可以说是一个不断Mark周,从最实用的Android UI设计工具.免费移动应用测试框架推荐,到HTML5开发框架等等,各种开发工具.框架精彩丰呈,看得小伙伴们是不亦乐乎.当然,还有不容错过的M ...

  7. 开发一款即时通讯App,从这几步开始

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云视频发表于云+社区专栏 关注公众号"腾讯云视频",一键获取 技术干货 | 优惠活动 | 视频方案 " ...

  8. 从零开始开发一款app,所想到的

    我在知乎上看到这个问题http://www.zhihu.com/question/27645587.我在阅读了各位大牛的答案后,再加上自己的思考,就有了这篇文章的内容.     从零开始开发一款app ...

  9. Android--从零开始开发一款文章阅读APP

    代码地址如下:http://www.demodashi.com/demo/11212.html 前言 本案例已经开源!如果你想免费下载,可以访问我的Github,所有案例均在上面,只求给个star.当 ...

随机推荐

  1. paip.java OutOfMemoryError 解决方法o33

    paip.java OutOfMemoryError 解决方法o33 java.lang.OutOfMemoryError: Requested # java.lang.OutOfMemoryErro ...

  2. iOS开发- 三步快速集成社交化分享工具ShareSDK

    1.前言 作为现在App里必不可少的用户分享需要,社交化分享显然是我们开发app里较为常用的. 最近因为公司App有社交化分享的需要,就特此研究了会,拿出来与大家分享. 想要集成社交会分享,我们可以使 ...

  3. This in JavaScript

    声明 本文仅为读书笔记并致力于理解Js中的this关键字.如有雷同,纯属巧合.原因有二,其一:有幸看了同一本书,其二:this这玩意已被说烂了~ 为什么要用this? this提供了优雅的方式隐式传递 ...

  4. javaweb回顾第五篇浅谈会话

    1:什么是会话 通俗来说就是客户和服务器的一次私密谈话,客户发送请求以后服务器能够识别请求是来自同一个客户,他们是1对1的关系. 了解会话以后我们就要去考虑如何去实现这些问题下面一一进行解析 2:会话 ...

  5. C#/ASP.NET Xml多级数据读取

    <Data> <Project> <Item Id="51351132-59a7-4c0b-909d-51b89b1c3159" IsDefault= ...

  6. ORACLE 监听日志文件太大停止写监听日志引起数据库连接不上问题

    生产库监听日志文件太大(达到4G多),发现oracle停止写监听日志,检查参数log_file,log_directory,log_status 均正常,数据库运行也正常. 经确认确实为监听日志过大引 ...

  7. CGI综述

    参考: 详说fastcgi,php-fpm的区别:http://segmentfault.com/q/1010000000256516 什么是CGI.FastCGI.PHP-CGI.PHP-FPM.S ...

  8. iis 故障导致网站无法访问

    服务器使用两三个月突然,昨天无法访问,重启后正常,第二次发生这样的事情了,打开  C:\WINDOWS\system32\LogFiles\HTTPERR  下的   httperr1.txt 201 ...

  9. js遍历jsonTree

    var json = [{tcName:"11", children:[{tcName:"22", children:[{tcName:"33&quo ...

  10. shell变量注意事项

    概念:变量赋值,变量替换,变量引用,命令替换 variable=22 echo variable 可以在同一行设置多个变量.例如 va1=good   va2=chif va3=beijing  #需 ...