android 开发坑点记录

  1. 拨号功能
    1) 调用拨号界面前需要判断当前设备是否有拨号程序,可使用try-catch捕获打开异常,避免应用闪退
  2. webview开发问题
    1) 缓存问题——没有开启缓存可能导致网页部分功能不能正常使用,而出现异常情况
    2) WebViewClient对象下的方法都为异步回调方法,如果在这些方法有android UI相关操作则需要注意activity关闭时不再执行到相应的操作,比如dialog的关闭操作,在onDestroy()中提前执行,同时dialog的显示和关闭要使用同步锁
    3) url拦截会导致头信息丢失(还可能有其他信息丢失),从而导致一些功能异常,因此需慎用
    4) 关于302重定向问题,还未解决
  3. 悬浮窗口问题
    1) 悬浮窗多次添加会导致闪退——在添加或移除悬浮窗的代码外围使用try-catch捕获异常,避免闪退
    2) 悬浮按钮如需全局移动则需要将flags属性设置为FLAG_LAYOUT_IN_SCREEN,但不要同时设置FLAG_LAYOUT_INSET_DECOR,否则在状态栏下悬浮按钮会被遮挡住部分视图
  4. 文件操作问题
    1) 在主线程中执行文件操作在少量4.4机型中可能会出现ANR,因此为了避免ANR,尽量不要在主线程中操作文件
  5. 多界面同时切换问题(android系统bug)
    1) 当当前应用在切换界面的同时也在切换应用的时候,部分机型会出现ANR,当界面频繁快速切换时也有可能出现 —— 尽量避免频繁切换界面且在应用跳转时不要执行界面切换相关操作
  6. 第三方登录:
    1)QQ授权登录的签名配置需要全部小写
    2)微信授权登录的签名配置需要全部大写
    3)注意包名、appID必须和第三方后台配置一至
    4)如果配置信息都一至,还是无法授权,则可能是缓存问题(如:微信缓存了错误的签名票据)
    5)签名的填写千万千万不要手动敲,一定要复制,不然极容易出错(已踩坑,而且是很深很深的坑)
    6)QQ提供的签名获取工具无法获取一些应用的签名,可以使用微信或微博提供的签名获取工具获取
  7. 在manifast文件中配置meta-data数据时,如果属性value的值为一长串的数字,那么必须在前面加上”\ “(斜杠和空格),否则编译之后,该数值会被修改,从而造成错误;如原本value=”1234567890123”,那么应该改成value=”\ 1234567890123”,这样编译出来的apk中对应的值才是正确的
  8. 待补充。。。

猜你喜欢

转载自my.oschina.net/u/3614895/blog/1563872