Archive for the 'ANDROID' Category

APP创业项目-APP开发技术选型:Hybird还是Native

开发一个APP有很多种可行方案:原生开发(Native)、混合式开发(Hybird)、PhoneGap生成(H5)、React Native、Python+kivy、Lua+Wax等等。本文挑选前三种常见的说说。

原生开发

应用能够发挥最佳性能,是高性能需求的应用的唯一选择,例如游戏开发、复杂应用。iOS用Object-C或Swfit、Android用Java、Win10用.NET,那么我们至少需要三个成熟的程序员。程序员各干各的事情,代码除了思想外都不能共用,相同的业务逻辑需要写三遍。应用发布新版本需要等待三个客户端同时开发测试完成才可。

PhoneGap生成

克服原生开发的平台鸿沟(Gap),几乎不涉及原生代码,使用H5编写应用的所有功能。PhoneGap为H5提供了调用系统的硬件资源的能力,并且提供了打包APP的功能,开发人员无需掌握原生代码。H5部分借助Jquery Mobile、React、Ratchet、Bootstrap、AngularJS等前端框架实现单页应用,APP仅仅是一个筐子,充当着浏览器的作用。一套程序既可以用作APP、也可以用作触屏版网站、还可以嵌入到微信公众平台,真是何乐而不为。但H5的性能和兼容性问题,需要一个出色的前端工程师才能驾驭。单页应用突出的问题在于页面之间的跳转,jQuery Mobile采用Div(Page)的显示与隐藏来模拟页面的跳转,虽然也能模拟转场动画效果、侧滑菜单等一系列类似原生的效果,但是视觉体验明显迟钝。如果界面非常复杂,例如电商网站的商品列表页,需要筛选品牌、类别、价格区间等等,那H5就显得捉襟见肘了。不建议创业产品使用单页应用开发,可以考虑传统网站多页面链接跳转的方式,即使这种方式没有单页应用的界面转换效果,但是更加可用。那界面之间的跳转空白岂不是很难看?这就是混合式的价值了。

混合式开发

采用原生开发与H5相结合,克服H5单页应用的体验限制,减少原生代码量。H5部分无需升级版本可以动态更新。借助Cordova实现H5与原生系统之间的通信。那么混合式怎么解决H5的界面跳转问题呢?混合式即要H5前端程序员,又要iOS、Android和Win10开发人员,并没有减少开发人员的数量,为何不直接原生开发?什么地方用H5,什么地方用原生开发呢? 继续阅读 [ APP创业项目-APP开发技术选型:Hybird还是Native ]

[转]移动应用测试需要考虑的问题

前段时间在weibo上看到有位前辈整理的android测试点,有感而发,结合我们现在的工作,整理了一下经常会遇到的问题。
继续阅读 [ [转]移动应用测试需要考虑的问题 ]

ListView item渐变背景

很多应用中的ListView每个item的背景都是白色渐变的,感觉很有立体感.
之前我一直以为是一张美工提供的背景图,今天终于明白了,其实是可以在xml中定义出这种效果的!

模拟器的效果不如真机好,不过你可以根据自己需求跳转渐变范围~

Xml代码


和图片一样 放入drawable 配置好把它看成图片调用就好了~
控件xml中 调用 android:background=”@drawable/pull_to_refresh_header_background” 是不是很简单 ~

android 与servlet json数据交互

最近在做moko 的android客户端的时候发现moko的api都是用的json数据传输,发送请求的数据是json,返回的也是json。

今天就也试着实现了下服务器的代码

先贴上代码:
继续阅读 [ android 与servlet json数据交互 ]

android 网络图片缓存策略

要准备睡觉了,记下今天研究了一天的网络获取图片缓存策略,至今还不知道有什么好的方法,只能粗略的知道一点思路。

网络获取图片可以利用url来进行唯一标识。利用应用程序静态变量和文件缓存图片。大概实现为:

利用static Map<String , Bitmap> imageCache 储存图片。

首先从imageCache中获取图片bmp = imageCache.get(url)。

如果imagCache中没有该图片从文件中获取。先将url进行MD5编码 获得文件名fielname,bmp = Utils.loadImageFromFile(filename , cacheDir);(Utils.loadImageFromFile()为自定义方法,为从缓存文件中获取图片。这里cacheDir = getCacheDir();应用程序从网络上获取图片后都会缓存于应用程序缓存中).

最后如果缓存文件中还是没有图片则从网络上获取:bmp = Utils.loadImageFromNet(url);(这里Utils.loadImageFromNet(url) 为自定义从网络上获取图片)。

这里都是利用AsyncTask异步加载图片。

 

关于android 缓存数据策略方案:

android有几种储存数据的方法

1.利用SQLite(适合经常读写数据)

2.以文件方式储存(适合较大文件)

3.SharePreferences储存(适合较小文件)

 

参考资料:

http://www.eoeandroid.com/thread-54654-1-1.html

http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=23263

http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=34187

http://www.cnblogs.com/hedalixin/archive/2011/01/21/1941390.html

http://wenku.baidu.com/view/97b8398fa0116c175f0e4861.html

虚拟主机设置MIME apk air 等软件自动更新

为程序设定自动更新是一个必要的工作,但是很多虚拟主机服务器不支持.apk,.air等特殊文件格式,即使支持也没有指定正确的“下载后打开方式”,因此我们需要在服务器为其设置正确的MIME,一般虚拟主机都支持这两种功能:.htaccess和自定义MIME。
以下方法任选其一:
自定义MIME
apk application/vnd.android.package-archive
air application/vnd.adobe.air-application-installer-package+zip
json application/json

.htaccess
AddType application/vnd.android.package-archive .apk
AddType application/vnd.adobe.air-application-installer-package+zip .air
AddType application/json .json

android 关于imageButton点击效果

  1. /**
  2. * 按下这个按钮进行的颜色过滤
  3. */
  4. public final static float[] BT_SELECTED=new float[] {
  5. 20002,
  6. 02002,
  7. 00202,
  8. 00010 };
  9. /**
  10. * 按钮恢复原状的颜色过滤
  11. */
  12. public final static float[] BT_NOT_SELECTED=new float[] {
  13. 10000,
  14. 01000,
  15. 00100,
  16. 00010 };
  17. /**
  18. * 按钮焦点改变
  19. 继续阅读 [ android 关于imageButton点击效果 ]

android Button Clickable的问题

在android Button.setClickable() 要在Button.setOnClickListener()后设置,否则不管setClickable的值为否,都为true
继续阅读 [ android Button Clickable的问题 ]

Android游戏:打豆豆外传发布

Android Apk文件下载:下载玩游戏
手机扫描二维码:
打豆豆外传

Flash版本:点击玩游戏
游戏玩法:
边框上的球每隔3秒就会转动一格,
与边框上球同行或同列,且颜色相同的中间球,
点击可以消去,消一球得一分,点错扣一分。

游戏截图:
继续阅读 [ Android游戏:打豆豆外传发布 ]