Archive for the 'JAVA' 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测试点,有感而发,结合我们现在的工作,整理了一下经常会遇到的问题。
继续阅读 [ [转]移动应用测试需要考虑的问题 ]

sun jdk ArrayList分析

先是ArrayList的构造函数,sun jdk提供了种构造函数:
ArrayList(){}
ArrayList(int size){}
ArrayList(Collection< ? extends E> c){}
先看ArrayList(int size);

  public ArrayList(int initialCapacity) {
	super();
        if (initialCapacity < 0)
            throw new IllegalArgumentException("Illegal Capacity: "+
                                               initialCapacity);
	this.elementData = new Object[initialCapacity];
    }

super();其实就是个空方法,重点在最后一条语句声明一个数组,大小为指定的大小。这里可以看下ArrayList的主要成员属性:
继续阅读 [ sun jdk ArrayList分析 ]

理解依赖注入

http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html

ListView item渐变背景

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

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

Xml代码


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

spring security3.0.7(一)

Spring Security是什么?
Spring Security为基于J2EE企业应用软件提供了全面安全服务。 特别是使用领先的J2EE解决方案-spring框架开发的企业软件项目。 如果你没有使用Spring开发企业软件,我们热情的推荐你仔细研究一下。 熟悉Spring-尤其是依赖注入原理-将帮助你更快的掌握Spring Security。
继续阅读 [ spring security3.0.7(一) ]

java 中的货币精确运算

在涉及到货币运算的时候,如果用的是float 或 double的话那会出现很多问题。在商业应用中经常会出项问题,
例如:
0.01 + 0.05 = 0.060000000000000005
4.015*100=401.49999999999994
而且double四舍五入的时候也有麻烦,如
所以对于这个问题我们使用java.math.BigDecimal这个类,
使用工具类进行运算
继续阅读 [ java 中的货币精确运算 ]

Hibernate 继承映射

Hibernate是一种Java语言下的对象关系映射解决方案,hibernate 使程序员可以以面向对象的思维操作数据库,所以hibernate也提供了继承映射。
使用继承映射某些情况下可以提升一些性能,例如在微博中帖子可以分好几种帖子,如纯文字贴,图片贴,视频贴,还有转贴。
这样就一个定义个帖子基类Post 子类ImagePost VideoPost CopyPost
继续阅读 [ Hibernate 继承映射 ]

struts2.2 + spring 3.1 + hibernate 3.6 配置

ssh是java中比较常用的框架组合。

首先配置spring:

spring文档中提到尽量将各个层的配置文件分开,再用import标签引用。

我是在src目录下建了个conf文件夹用于存放spring配置文件先是有4个xml文件
继续阅读 [ struts2.2 + spring 3.1 + hibernate 3.6 配置 ]

[转]Java线程的高级应用

核心提示:一、Java多线程互斥及同步控制和通信 多个线程的执行是并发的,也就是在逻辑上同时,而不管是否是物理上的同时。如果系统只有一个CPU,那么真正的同时是不可能的,但是由于CPU的速度非常快,用户感觉不到其中的区别,因此我们也不用关心它,只需要设想各个线

继续阅读 [ [转]Java线程的高级应用 ]