android周边游app的技术memo

本文档概述了周边游App开发中的关键技术实现,包括JSON接口设计、支付接入、第三方登录及分享、消息推送、定位与地图服务、网络请求、异常处理、数据实体类设计、本地数据存储、实用工具函数、列表组件的分页刷新功能、日期选择界面实现及PopupWindow的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

周边游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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值