Android
文章平均质量分 77
wangyuetingtao
这个作者很懒,什么都没留下…
展开
-
Android在线修复bug框架AndFix调研
最近,阿里低调发布了一个新的框架AndFix,这个框架可以让应用在不发布新版本的情况下,在线修复一些bug。 这简直是程序员的福音啊,果断在github上Watch该项目,下面跟我一起体验一下,看看是不是真的。 Andfix 简介 Andfix简介AndFix is a library that offer hot-fix for Android原创 2015-09-16 18:07:38 · 2479 阅读 · 9 评论 -
android多lib库工程的自动批量构建–linux shell简介
由于我们最后的自动打包将使用到jenkins,而jenkins又需要一些shell脚本作为粘合剂,所以我们需要学习一些简单的脚本语言。 脚本语言很多,如Python、JAVASCRIPT,ASP,PHP,PERL,但是最终我决定选择linux 的bash shell。原因有二: 第一:android本身基于linux,学习linux可以更好的理解android系统。 第二原创 2013-11-30 22:00:39 · 970 阅读 · 2 评论 -
删除系统应用导致INSTALL_FAILED_UPDATE_INCOMPATIBLE的安装错误
升级完海尔电视rom之后,打算卸载系统自带的优酷应用,装一个新版本。由于是系统应用,所以无法在电视上通过应用管理程序卸载的。 果断连接上adb ,使用adb shell进行卸载。 1.寻找系统应用 进入/data/system/app 下,找到优酷的apk 2.切换用户 输入【su】,切换到root账户 授予/data/system 文件夹读写权限(注意:有原创 2013-11-30 21:57:03 · 92 阅读 · 0 评论 -
android多lib库工程的自动批量构建–Jenkins环境搭建
Jenkins,前身名为Hudson,后改为Jenkins;其实它是一种持续集成工具!持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动 化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软 件。 此工具是原创 2013-11-30 22:02:57 · 982 阅读 · 2 评论 -
删除系统应用导致INSTALL_FAILED_UPDATE_INCOMPATIBLE的安装错误
升级完海尔电视rom之后,打算卸载系统自带的优酷应用,装一个新版本。由于是系统应用,所以无法在电视上通过应用管理程序卸载的。果断连接上adb ,使用adb shell进行卸载。1.寻找系统应用进入/data/system/app 下,找到优酷的apk 2.切换用户输入【su】,切换到root账户授予/data/system 文件夹读写权限(注意:有的盒子可能不支持该命令)原创 2013-11-27 10:01:53 · 1495 阅读 · 1 评论 -
Fragment和Sqlite问题
Fragment之 IllegalStateException: Can not perform this action after onSaveInstanceState: 今天使用Fragment的时候,出现了这个错误 IllegalStateException: Can not perform this action after onSaveInstanceState:E/And原创 2013-11-27 09:59:09 · 2058 阅读 · 1 评论 -
android多lib库工程的自动批量构建--常见问题
话说自动构建这个东西虽小,但是还是需要注意很多细节的,现在整理一下我在调试脚本时,遇到的一些问题。1.工具找不到E:\linshi-workspace\auto-builder\build.xml:210: Execute failed: java.io.IOException: Cannot run program "D:\android-sdk\platform-tools\aapt.原创 2013-10-30 21:38:55 · 1070 阅读 · 0 评论 -
android多lib库工程的自动批量构建--准备
打包这个活儿吧,本来没什么技术含量,千篇一律的更改渠道名称,然后编译,签名即可。但是如果发布渠道比较多的话,这种重复工作让人烦不胜烦。我们的应用发布渠道有30多个,若是手工打包,基本不用做其他的事情了。一个优秀的程序员,要持续的为改进和自动化而努力。今天我们来搞一搞自动化打包,后面陆续给出批量自动打包(自动更改渠道名称)使用工具:Ant (点我下载)准备:配置Java环境,配置Ant环境原创 2013-10-30 20:21:56 · 1122 阅读 · 0 评论 -
android多lib库工程的自动批量构建--编写ant脚本
基本配置--build.properties首先编写基本配置build.properties ,主要配置如下:android sdk所在目录编译项目所使用的项目版本Jdk所在目录以及签名时,所需要的密钥文件名称和密码等信息(keystore文件存在在主工程根目录下)以下标红的信息请注意替换成自己的skd等所在目录。sdk.home= E: \\android_env\\androi原创 2013-10-30 21:11:43 · 1213 阅读 · 0 评论 -
处理home按键清空Activity所在的Task堆栈
长虹厂商反馈的问题: 当通过intent外部调起的详情页面,按home键回到launcher,再次通过intent调起播放页面,按back键返回,会发现上次调用过的详情页。 想了想,这个问题其实是Activity和Task堆栈的问题。正好回顾一下task,launch mode这几个概念,高手直接略过。 Task是执行用户工作,与用户交互的一组Activity的集合。 当用户在应原创 2013-10-25 17:47:19 · 1950 阅读 · 1 评论 -
追溯源码解决android疑难问题2--寻找丢失的焦点
在手机应用开发中,基本不用考虑焦点控制问题。但是在机顶盒,智能电视上,不支持手势滑动触摸体验,一切都需要使用遥控器操作。所以一个TV上的应用是不是遥控器友好的,取决于应用对焦点的绝对控制。在开发过程中,通常情况下的焦点控制是交给系统处理的,开发者通常处理的焦点问题多出现在以下几种情况中:1.数据边界,如viewpager滚动到最左或者最右时2.页面刚刚展现完毕,要求原创 2013-09-28 23:41:24 · 1771 阅读 · 1 评论 -
告别龟速--android模拟器硬件加速
好久没有使用android模拟器了,一直使用盒子调试程序。赶上放假了,想看点android的东西,却发现家里没有盒子,只好使用模拟器。为什么不用手机呢,因为手机没有按键,一些焦点问题的处理并不能够模拟。打开模拟器一运行,发现模拟器的速度何止是龟速,简直就是龟速。其实自android4.0以后的版本,官方已经提供了加速的方案,那就是使用Intel HAXM 技术为 Android 模原创 2013-09-28 22:36:23 · 2723 阅读 · 3 评论 -
追溯源码解决android疑难问题1--Viewpager之notifyDataSetChanged无刷新
最近项目结束,搞了一次代码分享。其中一位同学分享了一下自己在解决问题过程中的一些心得体会,感觉受益匪浅。整理出来,分享给大家。建议使用自己编译的android os和虚拟机,这样就可以调试android系统中的任何组件。简单说来,深入android源码,去寻找解决问题的答案。这事儿说起来简单,实际做起来还是有些难度的。我也曾经尝试着去看过,没看一会儿就晕了。所以还是有针对性的去看源码,原创 2013-09-28 18:21:34 · 6860 阅读 · 6 评论 -
显示周边部分子页面的viewpager(一屏显示多个子页面)
由于智能电视并不像手机那样支持手势划屏,所以在电视上展示多屏数据时,需要提示用户翻页还有更多内容。 一般使用较多的方法就是箭头提示,比如: 还有一种更好的做法就是将下一页的部分展现出来,直观提示用户还有更多的页面。这种展现方式结合metro风格,被越来越广泛的盒子和电视厂商采用,例如小米,乐视等。 下面我们就将动手实现一个类似风格的demo,省去若干查询资料原创 2013-09-24 11:21:09 · 3861 阅读 · 2 评论 -
二维码闪电登录流程详解,附demo(2/2)
上篇文章,我们重点介绍了一下二维码登录的流程,以及每个“角色”要做的事情,下面我们重点分析TV角色所做的工作。 TV主要完成二维码图片显示,以及websocket请求。下面重点说一下这两点。1. Base64转码Bitmap 服务端返回二维码图片的二进制数据,我们需要将其转成图片。这个问题不大,android系统原生支持Base64转码的,并且提供了丰富的API。使用原创 2013-08-29 08:27:07 · 1726 阅读 · 2 评论 -
二维码闪电登录流程详解,附demo(1/2)
二维码,最早发明于日本,它是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。原创 2013-08-29 08:14:32 · 1554 阅读 · 1 评论 -
AsyncTask的onPostExecute方法未被系统回调
我们的TV客户端里增加了登录功能,在实现过程中,使用了AsyncTask来处理异步登录。在测试过程中,机率性的出现登录时,界面一直停在登录中的状态。 开始的时候以为是网络请求未设置请求的超时时间,但是设置了也不管用,依旧复现,让人非常头疼。 后来经过多次排查,发现是AsyncTask的onPostExecute()方法未被系统回调,是android Framework的一个bu原创 2013-08-27 18:08:01 · 1813 阅读 · 2 评论 -
基于mAppWidget实现手绘地图(十五)–如何控制放大缩小
一般来说,可以使用以下几种方式来控制地图的放大/缩小 :使用控件底部的缩放按钮双击控件pinch手势物理按键 :I键标识缩小 ;O键表示放大。(只有设备具有物理按键才行) 当然,你也可以使用自己的按钮实现放大和缩小缩小一个地图级别,调用:mapWidget.zoomIn();增加一个地图级别,调用mapWiget.zoomO翻译 2013-07-30 22:31:42 · 2047 阅读 · 1 评论 -
两个小问题
今天使用Fragment的时候,出现了这个错误 IllegalStateException: Can not perform this action after onSaveInstanceState: E/AndroidRuntime(12747): Caused by: java.lang.IllegalStateException: Can not perform this actio原创 2013-11-30 21:56:07 · 94 阅读 · 0 评论 -
Ubuntu 12.04.3 64位 安装android sdk后 adb无法连接设备
最近在切换到了ubuntu下做开发, 在使用中遇到了不少问题。在搭建android环境过程时,遇到了adb无法连接设备的问题。 后来才知道,android的adb使用的是32lib库, 网上找到了一个解决方案,结果没有细看ubuntu的版本和支持的硬件信息,一个sudo命令下去,ubuntu竟然挂掉了。太不靠谱了。 下面的解决方法亲测可用,绝不坑爹。 原因: 在Ubuntu中原创 2013-12-31 18:06:20 · 907 阅读 · 1 评论 -
android多lib库工程的自动批量构建–-打包脚本
给出jenkins到包用到的shell 脚本,供大家参考 。 脚本中定义了一些渠道pid和名称,在构建的时候,jenkins会传入构建参数中配置的渠道名称,默认是将所有渠道都进行打包。 关于脚本就不过多解释了,了解shell 脚本的同学都能看明白。#!/bin/bash# laucher jenksins## Requirement env var:原创 2013-12-31 18:09:44 · 1316 阅读 · 1 评论 -
基于mAppWidget实现手绘地图--索引&DEMO
文章翻译完了,梳理一下,附Demo下载基于mAppWidget实现手绘地图(一)–简介 基于mAppWidget实现手绘地图(二)–概要 基于mAppWidget实现手绘地图(三)–环境搭建 基于mAppWidget实现手绘地图(四)—如何附加java doc 基于mAppWidget实现手绘地图(五)—如何创建地图资源原创 2013-08-26 21:41:28 · 4810 阅读 · 18 评论 -
基于mAppWidget实现手绘地图–去掉试用版地图水印
mAppWidget是一个Android类库,使用它可以很方便的实现手绘地图,同时支持放大,缩小,气泡,图层等功能。但是这个类库分为试用版和正式版,正式版本的类库需要100多美刀,而试用版本虽然可以免费使用,但是地图上会有一个讨厌的logo 。原创 2014-01-27 17:59:24 · 2169 阅读 · 3 评论 -
基于mAppWidget实现手绘地图(四)—如何附加java doc
最近在看一些导游类应用,发现一些景区的导览图使用的完全是自定义地图,也就是手绘地图。这种小范围使用的,专业的地图给人以亲切的感觉。但是他们是如何实现的呢,网上找了找实现思路,都没有太满意的。 在一家英国的网站上,发现了一个类库,可以实现类似的功能。试了一下它提供的demo,发现功能强大的超过了我的预期。在这里分享给大家,希望给大家提供一个思路吧。 以下内容翻译自: FAQ——H翻译 2013-06-27 17:35:58 · 2135 阅读 · 1 评论 -
基于mAppWidget实现手绘地图(二)--概要
最近在看一些导游类应用,发现一些景区的导览图使用的完全是自定义地图,也就是手绘地图。这种小范围使用的,专业的地图给人以亲切的感觉。但是他们是如何实现的呢,网上找了找实现思路,都没有太满意的。 在一家英国的网站上,发现了一个类库,可以实现类似的功能。试了一下它提供的demo,发现功能强大的超过了我的预期。在这里分享给大家,希望给大家提供一个思路吧。 以下内容翻译自: Abstra翻译 2013-06-27 14:56:12 · 2718 阅读 · 1 评论 -
基于mAppWidget实现手绘地图(一)--简介
最近在看一些导游类应用,发现一些景区的导览图使用的完全是自定义地图,也就是手绘地图。这种小范围使用的,专业的地图给人以亲切的感觉。但是他们是如何实现的呢,网上找了找实现思路,都没有太满意的。 在一家英国的网站上,发现了一个类库,可以实现类似的功能。试了一下它提供的demo,发现功能强大的超过了我的预期。在这里分享给大家,希望给大家提供一个思路吧。 以下内容翻译自: mAppWidg翻译 2013-06-25 21:32:54 · 5018 阅读 · 1 评论 -
基于mAppWidget实现手绘地图(五)—如何创建地图资源
最近在看一些导游类应用,发现一些景区的导览图使用的完全是自定义地图,也就是手绘地图。这种小范围使用的,专业的地图给人以亲切的感觉。但是他们是如何实现的呢,网上找了找实现思路,都没有太满意的。 在一家英国的网站上,发现了一个类库,可以实现类似的功能。试了一下它提供的demo,发现功能强大的超过了我的预期。在这里分享给大家,希望给大家提供一个思路吧。 以下内容翻译自: FAQ——H翻译 2013-06-30 14:10:40 · 4551 阅读 · 6 评论 -
基于mAppWidget实现手绘地图–边界问题
去掉水印之后,地图还存在一个问题,就是拖动的时候,地图能够超出屏幕的范围。露出背景色,用户体验不是很好。有网友问如何控制不让地图超出屏幕范围。 仔细看了看地图中处理onScrolledEvent 的方法,想从中找到有关地图当前状态的参数。 但是很可惜那个方法至封装了在滚动事件中,地图在x,y方向的位置偏移。原创 2014-01-28 20:56:52 · 1808 阅读 · 0 评论 -
基于mAppWidget实现手绘地图(三)--环境搭建
最近在看一些导游类应用,发现一些景区的导览图使用的完全是自定义地图,也就是手绘地图。这种小范围使用的,专业的地图给人以亲切的感觉。但是他们是如何实现的呢,网上找了找实现思路,都没有太满意的。 在一家英国的网站上,发现了一个类库,可以实现类似的功能。试了一下它提供的demo,发现功能强大的超过了我的预期。在这里分享给大家,希望给大家提供一个思路吧。 以下内容翻译自: Enviro翻译 2013-06-27 15:48:37 · 2821 阅读 · 2 评论 -
GraphWidget插件—简介
GraphWidget简介: GraphWidget是一个Android库,通过水平滚动可以实时可视化输入的数据。效果如下: 特征: 折线图 实时图滚动优化 放大/缩小 在指定图位置自动对焦 添加坐标点时自动滚动 样式灵活要求: Android API 4 或更高版本 Android OS 1.6或更高版本翻译 2014-03-26 16:42:15 · 1058 阅读 · 0 评论 -
介绍几款Graph Widget
上篇博客介绍的是实时心电图,那这篇博客给大家介绍几款其他绘图工具。Simple Graph: 以一种华丽的样式展示其数据,数据可以是时间、体重或其他类型。特点: Pinch放大缩小 多种颜色主题 Home首页显示此库 导出text或ping格式 基本统计数据 过滤函数 打开首页:可以自动进行设置:翻译 2014-03-26 16:45:04 · 1270 阅读 · 1 评论 -
GraphWidget插件—demo下载
demo可以创建各种各样的图表,比如一个心电图、一个线性函数或者声音图,只要是线形图就可以。下载地址:http://www.appchina.com/app/com.ls.cardiotest/效果展示:其实在上篇博客中已经概括了GraphWidget插件,但是心动不如手动,所谓绝知此事要躬行。此demo版本为1.1,需要Android系统1.6以及更高版本。1.下载后,打翻译 2014-03-26 16:44:11 · 1199 阅读 · 1 评论 -
GraphWidget插件—概要
用户使用GraphWidget插件可以绘制心电图样式的图表。 不过,目前GraphWidget插件只支持线性图表。在这种情况下,你可以设置网格维度、垂直轴和水平轴以及绘制一条线。你也可以修改一些颜色和所绘制线的宽度。 当外部数据源产生数据时,图表能够实时更新。比如来自网络、蓝牙等设备的数据。这个数据源应该由开发者来实现而非图表库来提供。 举个例子来解释,我们准备了三个演翻译 2014-03-26 16:43:39 · 1459 阅读 · 0 评论 -
支付宝快捷支付集成里的坑
移动支付是今年的热门话题,快的打车和滴滴打车两款软件的PK,给广大用户带了不少的优惠,也让越来越多的人学会了在手机上使用支付宝和微信支付。 今天来介绍一下如何在手机端集成支付宝,支付宝的开发者是不允许个人申请的,只能以企业用户注册。本来集成不是件难事,但是如果你恰好有个4.1以上系统版本的手机,有个坑需要注意一下。 首先申请支付宝移动快捷支付, 访问 www.alip原创 2014-02-28 21:34:31 · 3409 阅读 · 1 评论 -
微派支付集成
微派支付也是做移动支付聚合的一家公司,不过这家公司比较奇葩。为啥呢,所有事情都是人在做,而不是通过软件系统。下载个SDK还需要跟商务沟通,资质审核,ID分配也是商务沟通,搞个服务器通知接口文档也需要技术手动发给你。OMG,你敢交给软件去做不。 几番折腾总算把SDK搞到手,我比较关注短信支付这块,看了一下结算方式: 乙方应得收益=用户实际向运营商缴纳的代收费总额*乙方结原创 2014-02-28 21:32:20 · 2967 阅读 · 2 评论 -
siteapp–让独立博客变成手机app
刚开始做android的时候,就有过一个想法:那就是为自己的独立博客制作一款手机app,通过这个app,读者就可以在手机上阅读博主的最新博文。后来演变成制作一个app模板,为所有的博主或者站长提供一个内容定制的入口,通过服务器打包编译生成定制的手机应用。这样就可以为所有的不懂技术的站长,提供一个拥抱移动互联网机会。原创 2014-01-27 17:57:50 · 1408 阅读 · 0 评论 -
智能电视开发Gridview无法上下滚动
要做一个观影券的页面,使用gridview做展示。如下图 本以为很简单的一件事情,但是开发过程中,却遇到了难得一见的问题--Gridview居然无法上下滚动了。网上查了一些资料,好像没有人遇到过类似的问题。 但是项目中另外一个页面却可以使用,最后仔细对比,查找两边的差异,发现引起问题的原因是Gridview上方的一个ImageButton,这个Button原创 2013-12-31 18:15:19 · 1229 阅读 · 1 评论 -
android多lib库工程的自动批量构建–Jenkins实战
上文我们把 Jenkin环境搭建完了,接下来我们开始动手实践一下这个自动构建系统。 jenkins定义了一套构建的流程,而构建的细节需要我们来编写。在使用过程中,我们需要一些脚本语言作为粘合剂,来协助完成。目前它支持linux shell,windows batch,ant,python等等脚本,这里我选用的是linux shell,完成一个多lib库android应用的自动打包。当然了原创 2013-12-31 18:03:48 · 1361 阅读 · 1 评论 -
基于mAppWidget实现手绘地图(十二)--显示当前用户位置
若显示当前用户位置,你需要执行以下步骤: 添加ACCESS_COARSE_LOCATION 和ACCESS_FINE_LOCATION权限AndroidManifest.xml 用mapWidget.setShowMyPosition(true)来显示当前用户的位置 得出的结果是,你应该看到地图上的位置标记: 如何改变位置指针指向的方式?翻译 2013-07-30 22:08:14 · 2368 阅读 · 10 评论 -
基于mAppWidget实现手绘地图(八)–获取用户地理位置
你有两种方式确定用户的当前位置: 使用安卓标准方式 使用MapWidget的监听器 标准方式: 使用以下代码:LocationManager locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);locManager.requestLocationUp翻译 2013-07-30 21:39:58 · 2098 阅读 · 0 评论