android周边游app的技术memo

周边游app的技术memo。

1 json接口定义

 时间尽量用timestamp。

2 支付接入

 支付用的支付宝快捷支付和WAP支付,因为后台问题,暂时是在客户端签名(快捷支付就没有通过后台)。

3 第三方接入

 基本用的友盟,包括第三方登录分享(微博、微信、朋友圈、QQ、腾讯微博,没有用SSO),用户反馈,自动更新,行为统计(自定义事件)。

 挺方便的,基本按照友盟的guide就行。就是要注意申请的对不对,比如用release签名申请的微信,这边还一直用debug签名在调,费劲好久才发现。

 消息推送用的Jpush,可以根据别名和标签推送。标签可以多个。

4 定位、地图、导航

 定位不能用android自带的api,有偏移。用百度的定位sdk,地图sdk,包括覆盖物、路径规划。

 有些开发版的手机定位不好,没定位到就会跑掉非洲边上的海里,可能那地方经纬度都是0。

 不爽的是移动版sdk没有setcenter("城市名")这样的接口来切换城市,只能用经纬度。网页版有。

5 网络

 没用afinal之类。就简单的用了HttpURLConnection。

 多线程发现AsyncTask不同版本上表现不一致, 2.3sdk上编译的在4.0以上运行竟然并发线程数为1,

 只好把AsyncTask源代码拷过来,改下线程数。没有其他依赖文件。

6 异常

 不知为何后期logcat中再不打印exception信息,就是tag为RuntimeError的那些。可能是某个第三方库引起的?

 只好实现了一个UncaughtExceptionHandler来输出,这样也好,还能把crash信息存到文件,甚至通过网络发送出来。

7 数据实体类entity

 开始所有entity实现的是Serializable接口,后来发现如果要在activity之间传送entity的list,必须实现Parcelable接口。

8 db

 开始说基本不存本地,就没加db,后来消息还是需要存,不想写db,就直接将对象list序列化到文件存在sd卡中算了。

 接口还是写成insertMessage、updateMessage、deleteMessage这样仿数据库的。

 还做了一点list排序(Collections.sort)和去重(TreeSet),就是重写两句java自带的Comparator。

9 utility

 getNetworkStatus、sdCardIsAvailable、enoughSpaceOnSdCard、enoughSpaceOnPhone、isValidMobile、readFile、saveFile、GetVersion、getImei

10 列表list的上拉分页、下拉刷新

 开始同事找的一个控件有手势冲突之类的问题,后来同事换了个PullToRefreshListView,还不错。

11 日期选择

 日期选择页面显示的是三四个月的价格,得手工在convas上绘制线条图形和文字,有点工作量,有经验也至少得好几天。

12 PopupWindow bug

 发现PopWindow在Android 2.3上运行的一个bug。不能直接(显式或隐式)调用其无参构造函数,得在子类构造函数中先调用super(context)。

 问题在android源码http://androidxref.com/2.3.7/xref/frameworks/base/core/java/android/widget/PopupWindow.java#setContentView,第384行。

 解决办法来自wangpingtaohn的博客:http://my.eoe.cn/545347/archive/19796.html。

你可能感兴趣的:(技术,android)