迁移到 www.trinea.cn @Android @Java @性能优化 @开源,滴滴国际化项目 Android 端演进
摘要: 在使用ViewPager添加android-support-v4.jar后提示如下错误 11-15 21:01:21.725: E/AndroidRuntime(32431): Caused by: java.lang.ClassNotFoundException: android.support.v4.view.ViewPager in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/mnt/asec/com.trinea.android.demo-2/pkg.apk] 我是通过项目 -> 属性 -> Java Build Path -> Add External JARs添加了android-support-v4.jar包的,后属性 -> Java Build Path -> Remove该jar,直接将jar包复制到项目的libs目录下即可。因为项目libs下的jar包会自动导入项目,不需要手动导入。 阅读全文
posted @ 2012-11-16 19:04 Trinea 阅读(12595) 评论(1) 推荐(0) 编辑
摘要: 本文主要介绍Android开发中如何直接查看sqlite数据库中的数据以及sqlite3的常用命令。 2、实时查看sqlite数据 只需三条命令 (1) 进入AVD的shell模式 adb shell (2) 进入数据库目录查看数据库 cd /data/data/package_name;ls 其中的package_name为应用的包名 (3) 操作数据库 sqlite3 dbName 进入sqlite命令行模式,输入.tables查看所有表,输入select * from tabelName查看某个表的所有数据 3、sqlite3的常用命令 .tables 显示所有表 .quit 退出 .read FileName 执行FileName中的sql 标准的sql语句也可以用,但必须用分号结束,如下 select语句; delete语句; update语句; insert语句; 阅读全文
posted @ 2012-11-16 19:02 Trinea 阅读(17054) 评论(1) 推荐(1) 编辑
摘要: 本文主要介绍读书<<Don't Make Me Think>>的读书笔记以及Chrome设计中的Don't Make Me Think1、<<Don't Make Me Think>>读书笔记2、Chrome设计中的Don't Make Me Think(1)、功能强大的地址栏大家是否记得Don't Make Me Think中提到主页上的搜索举得雅虎的例子,用户在雅虎的搜索框中直接粘贴了url进行搜索企图在这个框内完成所有的互联网操作。现在Chrome的地址栏就做到了,集搜索栏、地址栏于一身,可直接跳入某 阅读全文
posted @ 2012-11-15 23:05 Trinea 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍如何为自定义的View添加属性以及属性的类型。 1、添加自定义View的属性文件 在res/values中新建attrs.xml文件,定义名为myViewDefinedAttr的属性列表,这个name命名也可以用下划线形式。name会在下面第二步中使用。 2、自定义View中获取属性值。 3、调用自定义View。 4、自定义属性的类型。 format表示的属性类型可以为boolean, string, integer, dimension, float, reference, color, fraction, enum, flag及其混合。 阅读全文
posted @ 2012-11-14 20:08 Trinea 阅读(11789) 评论(1) 推荐(1) 编辑
摘要: 本文主要介绍如何在Android中引入地图及并对地图进行相应的操作。包括如何申请Google Map API密钥、如何创建包含地图的项目、地图的功能使用(地图缩放、设置视图、定位到自己的位置、添加标记、获得屏幕坐标的位置、双击放大、位置搜索即经纬度位置及屏幕像素坐标和具体地址的转换、监听某个位置)、google map和百度地图API的差别。 1、申请Google Map API密钥。2、新建项目,Build Target选择Google APIs而不是Android API。 3、编写代码 3.1 layout中添加MapView。 3.2 AndroidManifest.xml文件添加权限。 4 map功能 4.1 地图缩放;4.2 设置视图;4.3 定位到自己的位置;4.4 添加标记;4.5 获得触摸的位置;4.6 双击放大;4.7 位置搜索即经纬度位置、屏幕像素坐标和具体地址的转换;4.8 监听某个位置。 5、google map和百度地图API的差别 在定位、缩放上API几乎没有区别但在搜索、路线、覆盖物图层方面区别巨大,百度地图开发的API较多,可以方便的 阅读全文
posted @ 2012-11-14 19:20 Trinea 阅读(10298) 评论(0) 推荐(1) 编辑
摘要: 以前写的一个工程中调用了google map的api,今天在AVD中运行却始终提示如下错误: [2012-11-14 17:54:38 - AndroidDemo] Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY [2012-11-14 17:54:38 - AndroidDemo] Please check logcat output for more details. [2012-11-14 17:54:38 - AndroidDemo] Launch canceled! 但在手机端运行确实正常。后发现是创建的AVD target错误。编辑AVD将target由android x.x改为google apis xx即可。 对于引入google map的工程需要: a. 创建时项目的target选择google apis,而不是android x.x。项目创建完成后也可以通过属性-Android-target修改 b. AndroidManifest.xml文件的applicat 阅读全文
posted @ 2012-11-14 18:48 Trinea 阅读(2727) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍在Android开发中如何利用wifi进行应用调试以及其原理。 1、要求 手机必须root过,手机和电脑必须都联网且在同一局域网内。 2、步骤 a、手机端启动adbd服务 在手机端打开终端,可使用软件终端模拟器或BetterTerminal,通过下面命令启动服务 su setprop service.adb.tcp.port 5555 stop adbd start adbd 这时到手机的设置->系统->网络里查看手机ip地址多少,如192.168.1.193 b、在PC端打开命令行,输入 adb connect 192.168.1.193 阅读全文
posted @ 2012-11-13 20:34 Trinea 阅读(4457) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍PendingIntent的作用和举例以及和Intent的区别 1、PendingIntent作用 根据字面意思就知道是延迟的intent,主要用来在某个事件完成后执行特定的Action。PendingIntent包含了Intent及Context,所以就算当前程序结束,PendingIntent依然有效,可以在其他程序中使用。 常用在通知栏及短信发送系统中 PendingIntent一般作为参数传给某个实例,在该实例完成某个操作后自动执行PendingIntent上的Action,也可以通过PendingIntent的send函数手动执行,并可以在send函数中设置OnFinished表示send成功后执行的动作。 2、PendingIntent举例 a. 系统通知栏 b. 短信系统举例 3、Intent和PendingIntent的区别 阅读全文
posted @ 2012-11-09 22:07 Trinea 阅读(7511) 评论(0) 推荐(1) 编辑
摘要: 本文主要介绍Parcelable和Serializable的作用、效率、区别及选择。 1、作用 从上面的介绍可知 Serializable的作用是为了保存对象的属性到本地文件、数据库、网络流、rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的。 而Android的Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及不同Android程序间(AIDL)高效的传输数据而设计,这些数据仅在内存中存在,Parcelable是通过IBinder通信的消息的载体。 从上面的设计上我们就可以看出优劣了。 阅读全文
posted @ 2012-11-09 20:14 Trinea 阅读(18760) 评论(2) 推荐(1) 编辑
摘要: 本文主要介绍Intent和Intent Filter的概念及作用、Intent的结构、两种类型Intent、 Intent和Intent Filter 的匹配规则、利用Intent调用其他常见程序。 1、Intent和Intent Filter的介绍及作用 Intent是抽象的数据结构,包含了一系列描述某个操作的数据,使得程序在运行时可以在程序中不同组件间通信或启动不同的应用程序。Intent Filter顾名思义就是Intent的过滤器。 2、Intent结构 3、两种类型的Intent 显式Intent和隐式Intent。 4、Intent和的匹配规则。 5、利用Intent调用其他常见程序,发送短信、打电话、发送邮件、拍照、浏览网页、查看联系人 阅读全文
posted @ 2012-11-09 20:01 Trinea 阅读(6222) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍BroadcastReceiver的概念、使用、生命周期、安全性、分类、特殊的BroadcastReceiver(本地、粘性、有序、粘性有序广播) 1、概念介绍及两种注册方式的区别 2、使用举例 3、生命周期 4、安全性 5、分类 普通和有序广播 6、特殊的BroadcastReceiver a. LocalBroadcastManager本地广播 b. Sticky Broadcast粘性广播 c. OrderedBroadcastReceiver有序广播 d. StickyOrderedBroadcast粘性有序广播 阅读全文
posted @ 2012-11-09 19:41 Trinea 阅读(13693) 评论(1) 推荐(3) 编辑
摘要: 在Android Service介绍中我们对长时间运行的服务、应用内交互的服务进行了相关介绍,本文主要介绍使用Service进行应用间的交互。示例APK见:TrineaAndroidDemo.apk。1、介绍Android使用AIDL来完成进程间通信(IPC),AIDL全程为Android Interface Definition Language。在服务需要接受不同应用多线程的请求时才需要使用AIDL,如果是同一个应用内的请求使用Binder实现即可,见应用内交互的服务;如果只是应用间通信而不是多线程处理的话使用Messenger,当然这两种情况也可以使用AIDL。本地进程和远程进程使用AI 阅读全文
posted @ 2012-11-08 23:48 Trinea 阅读(7943) 评论(0) 推荐(1) 编辑
摘要: 本文主要介绍Service的概念及作用、使用(包括长时间运行的服务、应用内交互的服务、应用间交互的服务的分别举例、生命周期、使用场景)、特殊的Service。代码地址AndroidDemo@GoogleCode 1、概念及作用 由于ANR对Activity和BroadcastReceiver响应时间的限制(Activity对事件响应不超过5秒,BroadcastReceiver执行不超过10秒),使得在其中都不适合执行较耗时操作,这样像网络、数据库、复杂计算这类耗时操作的执行就需要一个组件来承担。Service作为Android四大组件之一,其功能之一就是耗时操作的执行,主要功能如下: a. 执行需要长时间运行的操作 b. 应用内或应用间数据通信 阅读全文
posted @ 2012-11-08 23:42 Trinea 阅读(12122) 评论(1) 推荐(5) 编辑
摘要: 最新最准确内容建议直接访问原文:Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类)介绍总结的一些android公共库,包含缓存(图片缓存、预取缓存)、公共View(下拉及底部加载更多ListView、底部加载更多ScrollView、滑动一页Gallery)、及Android常用工具类(网络、下载、shell、文件、json等等)。TrineaAndroidCommon开源地址为TrineaAndroidCommon@Github,欢迎Star或Fork^_*,示例APK地址见TrineaAndroidDemo.apk。PS:这是准备分享 阅读全文
posted @ 2012-07-16 17:38 Trinea 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 最新内容建议直接访问原文:Android ImageCache图片缓存主要介绍一个支持图片自动预取、支持多种缓存算法、支持二级缓存、支持数据保存和恢复的图片缓存的使用、功能及网友反馈的常见问题解答。与AndroidLruCache相比主要特性:(1). 使用简单 (2).轻松获取及预取新图片(3).包含二级缓存(4).可选择多种缓存算法(FIFO、LIFO、LRU、MRU、LFU、MFU等13种)或自定义缓存算法(5).可方便的保存及初始化恢复数据(6). 省流量性能佳(有且仅有一个线程获取图片)(7).支持不同类型网络处理(8).可根据系统配置初始化缓存(9).扩展性强(10).支持等待队列 阅读全文
posted @ 2012-06-20 11:07 Trinea 阅读(1120) 评论(0) 推荐(0) 编辑
摘要: 最新内容建议直接访问原文:PreloadDataCache支持预取的数据缓存本文主要介绍一个支持自动向前或向后获取新数据的缓存的使用及功能。Android图片内存缓存可见ImageCache。主要特性:(1).使用简单 (2).可自动预取新数据 (3).可选择多种缓存算法(包括FIFO、LIFO、LRU、MRU、LFU、MFU等15种)或自定义缓存算法 (4).省流量性能佳(有且仅有一个线程获取数据) (5).支持不同类型网络处理 (6)缓存可序列化到本地 缓存可从文件中恢复 (7).扩展性强 (8). 包含map的大多数接口适用:Java和Android开发中获取数据较耗时的应用,如网络通讯 阅读全文
posted @ 2012-06-18 15:45 Trinea 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍自己在开发过程中总结的一些Java工具类,主要包括SimpleCache——小型缓存、AutoGetDataCache——自动获取新数据的缓存,ArrayUtils——数组工具类、FileUtils——文件操作工具类、JSONUtils——Json工具类、ListUtils——list工具类、MapUtils——map工具类、ObjectUtils——Ob... 阅读全文
posted @ 2012-06-18 15:41 Trinea 阅读(2122) 评论(1) 推荐(0) 编辑
摘要: 本文主要介绍如何实现一个可以响应各个方向的CompoundDrawables点击操作的TextView。关于其使用见可以响应各个方向CompoundDrawables点击操作的TextView的使用。 TextView可以通过setCompoundDrawablesWithIntrinsicBounds在TextView内容的上下左右添加图片方便用户的需要,但默认并... 阅读全文
posted @ 2012-06-18 11:09 Trinea 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍如何使用一个可以响应各个方向CompoundDrawables点击操作的TextView。关于其实现原理见可以响应各个方向CompoundDrawables点击操作的TextView的实现原理。TextView可以通过setCompoundDrawablesWithIntrinsicBounds在TextView内容的上下左右添加图片方便用户的需要,但默认并没有提供设置点击这些图片后响应操作的接口。本文介绍自己自定义的一个TextView达到此效果,主要功能为设置TextView各个方向图片的响应。首先让我们看下效果点击最下面的图片响应如上,执行结果为显示“Bottom”的Toas 阅读全文
posted @ 2012-06-18 11:08 Trinea 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍如何实现类似新浪微博客户端下拉刷新效果的ListView。关于其使用见下拉刷新ListView的使用。示例APK地址:TrineaAndroidDemo首先让我们看下效果四张图分别为第一次下拉、第一次释放、第一次刷新中、第二次下拉的效果,其中的文本可以设置,可以下载Demo代码DropDownListViewDemo编译运行。下面看如何使用实现1、源代码见DropDownListView.java,其中注释明确。项目地址见TrineaAndroidCommon@Github2、原理通过对ListView添加了一个刷新layout(源代码res/layout/drop_down_to 阅读全文
posted @ 2012-06-17 21:18 Trinea 阅读(3207) 评论(2) 推荐(0) 编辑
摘要: 最新内容建议直接访问原文:下拉刷新及滚动到底部加载更多的Listview使用本文主要介绍可同时实现下拉刷新及滑动到底部加载更多的ListView的使用。该ListView优点包括:a. 可自定义下拉响应事件(如下拉刷新) b.可自定义滚动到底部响应的事件(如滑动到底部加载更多) c.可自定义丰富的样式 d.高效(若下拉样式关闭不会加载其布局,同listView效率一致) e. 丰富的设置。本文可运行APK地址可见TrineaAndroidDemo.apk,可运行代码地址可见DropDownListViewDemo,效果图如下:更多请直接访问原文:下拉刷新及滚动到底部加载更多的Listview使 阅读全文
posted @ 2012-06-17 21:17 Trinea 阅读(582) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍在android工程中如何将共用代码建成公共包方便其他工程引用、引用后的工程结构分析、library引入方式的优缺点。我的公共库已开源,可见TrineaAndroidCommon@Github,包含图片缓存、下拉刷新、静默安装及其他Android开发常用工具类,欢迎star和fork^_^。示例APK地址:TrineaAndroidDemo1、java中公共库的创建和引入熟悉java的朋友都知道在java中可以将公用代码提取出来新建工程,打包成jar包,然后通过外部依赖或是maven依赖加入其他工程使用。2、android中公共库的创建和引入使用android提供的is libra 阅读全文
posted @ 2012-05-30 23:18 Trinea 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 本文主要是介绍maven的几个常见第三方插件(cobertura、findbugs、source、assembly、插件开发)配置和使用,接http://trinea.iteye.com/blog/1290898 maven本质上是一个插件框架,它的所有工作都交给插件来做,每个插件可以有多个goal。 除了自带的插件之外还有很多比较成熟的第三方插件,我们也很容易上手... 阅读全文
posted @ 2012-05-17 20:14 Trinea 阅读(1439) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍在Junit单元测试中序列化时出现的java.io.NotSerializableException如何解决。 关于序列化可以参见http://trinea.iteye.com/blog/1020511 以下是Junit单测中的一段代码,主要功能是序列化一个接口变量 interface GetDataInterface extends Serializa... 阅读全文
posted @ 2012-05-17 00:39 Trinea 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 之前一直对异常处理比较疑惑,通常有点随心所欲而没有规范统一的处理标准。这次的项目提供全网的基础服务,认真学习了下异常处理的规范,正好看到了下面的文章,相见恨晚 原文如下,主要需要掌握,分清Checked exception和Unchecked exception;保持封装性统一对外提供异常; 不做没必要的封装处理。 使用时记得finally释放资源; 不要使用异常作... 阅读全文
posted @ 2012-05-15 17:01 Trinea 阅读(234) 评论(0) 推荐(0) 编辑