ViewPager实现Recycle机制和响应notifyDataSetChanged

1.目标主界面要求水平移动翻页效果,每次只能翻一页,可以翻无数页。2.实现思路针对“每次只能翻一页”这个要求,简单使用SDK的话只有用ViewPager。ViewPager的PageAdapter是没有实现RecyclerView的ViewHolder.itemView回收机制的。即使是子类FragmentStatePagerAdapter,也只是保存状态后销毁Fragment,Fragment本身...
阅读(417) 评论(0)

客户端开发设计总结

1 基础设施程序最基本的处理就是数据IO以及为了并行计算所做的操作,它们通常会作为程序的底层框架,供上层使用。2 交互从PC到现在的移动设备还有VR,人机交互中的输入设备在不断自然化,可是展示界面的元素仍然还是这几种:静态文本、按钮、列表、输入框、选择菜单、进度提示、滚动条、标签页。每种UI框架都提供这些基本组件,可以说掌握它们就等于对这个框架入门了。高级的交互会跨越窗口、跨越程序,并能更智能化地响...
阅读(2629) 评论(1)

HTTP(S)网络框架的设计

0.烦恼 操作系统提供的网络接口都相对接近底层,使用时有诸多不便。但是我们不能期望系统API做得很高级,因为没有绝对合适的网络库,必须定制化从而达到适合某业务下的最佳性能。 1.需求 移动app使用网络库的场景不外乎三个: 和自家(CS架构的)服务器通信 下载文件 Web浏览 从方便和可扩展性出发,不少app会选择通信协议为HTTP(S),数据协议则为自定义。为了保护隐私,如果不使用HTTPS,数据都该自...
阅读(2256) 评论(1)

跨平台客户端开发经验总结

1 前言因为《猫科动物和企鹅在窗口外看机器人吃苹果》这出戏太美,很多公司都希望能全平台同时发布新版本app,还要能复用代码以降低开发成本。这迫使一部分已熟悉某个平台的先锋们转岗到另一个平台边学习边开发。最终有少部分人在每个战场都打拼过,从而能全盘考虑以设计出良好的可复用架构。 革命总会出新知,今天已有一些开源框架能应对同时在5大平台Mac OS X、Linux、Windows、Android、iO...
阅读(4786) 评论(7)

boost::asio的http client应用笔记

1 踩过的坑1.1 io_serviceboost::asio::io_service::run()会一直运行到没有任务为止,如果中途调用stop(),则所有等待中的任务会立刻执行。解决方案是用run_one(),即while (keep_running) io_service_.run_one();keep_running是个bool值,要stop io_service的时候直接置fals...
阅读(6619) 评论(5)

boost全平台编译方法

0.通用规则boost自带一套编译工具bjam,bjam本身是跨平台的,并且也要自行编译出来。在boost目录下有bootstrap.sh和bootstrap.bat两个脚本分别用来编译*nix和windows下的bjam。bootstrap脚本可以传入参数,以在编译bjam过程中生成特定的编译boost的配置。编译bjam过程中生成的project-config.jam就是默认的配置,但还可以在运...
阅读(25338) 评论(21)

libevent2笔记(linux、windows、android的编译)

0. 前言我使用的版本是libevent-2.0.21-stable。高级的应用还是得看官网文档http://www.wangafu.net/~nickm/libevent-2.0/doxygen/html/1. 编译1.1 Linux版编译在目录下./configure && make即可在./.lib/下得到5个.a静态库。 sdfsdfdsf...
阅读(4908) 评论(2)

Windows SublimeText内使用NDK编译Android so(不用cygwin)

测试环境:sublime text version 2.0.2, build 2221 和 sublime text stable channel, build 3065 (version3)Win7 64位android-ndk-r10c windows x86_64步骤:1.设置好ndk环境变量假如把ndk压缩包解压到D:\android-ndk-r10c,则控制面板 -> 系统 -> 高级系...
阅读(3431) 评论(1)

Android4.4系统浏览器Chromium实现的加载模块与流程

本文只描述Http网络请求相关的信息,Https、Spdy、file、ftp、websocket等的类型只提及在哪里出现关系分支。 下面是加载流程的xmind导出图,最好另存为到本地用看图软件看。看图提示:从上往下是根据堆栈倒置过来画的流程“..."表示省略IPC机制的代码图中有一些地方省略了Callback机制的代码同一父节点表示在此父函数内按顺序执行大部分类名和函数名已代表了其功能和意义,还可...
阅读(6818) 评论(1)

在Android上玩google-breakpad(崩溃日志收集)

首选得到代码svn co http://google-breakpad.googlecode.com/svn/trunk breakpad...
阅读(15140) 评论(5)

Android程序内存占用检测

1.检查系统总内存 liuhx@uc ~ $ adb shell cat /proc/meminfo MemTotal: 840868 kB MemFree: 457344 kB Buffers: 1744 kB Cached: 203064 kB SwapCached: 0 kB Active:...
阅读(5699) 评论(0)

Android系统应用信息中存储和缓存的计算方法

进行如下操作: 设置->应用->选择一个应用->应用信息 会到达如下界面: 可以看到这个应用占用的磁盘空间。 先说结果,这几项有计算哪些文件(夹)。 1.应用,由三项组成 /data/data/com.myapp/lib,即so库文件夹大小/data/app/com.myapp-1.apk,原始apk文件的复制/data/dalvik-cache/data@app@com....
阅读(8088) 评论(4)

AOSP和Chromium的Android WebViewTest

AOSP的在$android4.2/frameworks/base/tests/WebViewTests/目录下,可用eclipse导入工程。 就几个文件。最下面的是Activity,没啥特别,就是在LinearLayout里面放了WebView。 JavaBridgeTestBase是所有TestCase的基类,继承了ActivityInstrumentationTestCase2,...
阅读(3079) 评论(8)

Android Canvas drawText实现中文垂直居中

目标: 把中文字符绘制到目标矩形的居中位置。 问题: Android的Canvas绘图,drawText里的origin是以baseline为基准的,直接以目标矩形的bottom传进drawText,字符位置会偏下。这样写代码: @Override public void onDraw (Canvas canvas) { Rect targetRect = new Rect(50,...
阅读(49616) 评论(12)

接口测试的用例设计思路

1.概述 单元测试是被测的函数都只作用于其所属的类,接口测试是测试多个类/模块间的相互作用,即目标是被测函数如何被调用以及调用后会对外产生什么结果。 本文以Android SDK的android.webkit包为例,讲述不同类型的接口的用例设计思路。这个包以WebView为核心类,其函数作用了WebViewCore.java以及JNI等模块,故不能用应用单元测试(准确来说是单元测试没意义)。...
阅读(8472) 评论(7)

bash shell脚本实现android自动化测试部署与运行

我的配置的linux 64, android4.2.2的sdk。 实现的细节都在代码注释里了,变量名也是本意。 主流程为: 检测是否指定端口的模拟器已经运行,若有则关闭创建模拟器启动模拟器用ant build包,通过检查bin目录下有没有apk来确定是否成功检查指定端口的模拟器是否已正常运行用adb安装apk启动apk的activity,让程序自己跑用shell ps循环检测程序是否已...
阅读(4173) 评论(0)

Linux Mint 15下编译Chromium for Android

首先得看官方文档,大部分操作步骤就是那样,我就不翻译了,只做补充。https://code.google.com/p/chromium/wiki/AndroidBuildInstructions 1. 在执行这步sudo ./install-build-deps-android.sh前,修改这个脚本,把if /usr/bin/lsb_release -r -s | grep -q "12...
阅读(2791) 评论(1)

搭建Android生产环境傻瓜教程(二)开发环境

SVN客户端: http://wiki.rabbitvcs.org/wiki/install/ubuntu。貌似这个最像windows的TortoiseSVN了,居然叫RabbitVCS,龟兔赛跑……不过这兔子的效率一般,建议用终端checkout。 运行32位程序: 某些32位的程序运行不了,ia32-libs可以解决 sudo apt-get install ia32-libs...
阅读(3086) 评论(3)

搭建Android生产环境傻瓜教程(一)Ubuntu系统环境和常用软件

首先要到ubuntu官网http://www.ubuntu.com/download/desktop下载安装包。 最好是安装大多数开发者在用的版本,不然你遇到问题也没人回答,所以装的是12,不是13.另外因为在中文版上开发会有很多问题,所以乖乖地装英文版吧。 因为我的台式机是i7 cpu,所以选择下载64位版. 我觉得大公司应该捐助一下: 下载得到u...
阅读(2950) 评论(4)
    个人资料
    • 访问:918363次
    • 积分:9048
    • 等级:
    • 排名:第1929名
    • 原创:123篇
    • 转载:0篇
    • 译文:0篇
    • 评论:407条
    联系方式
    博客专栏
    最新评论