`
zhiweiofli
  • 浏览: 511658 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
      代码的性能是最重要的。然而,在当今复杂的多线程移动应用世界里,我们常常会为保证内存数据的一致性而牺牲一些性能。线程竞争条件的设计和调试是一件非常耗时,且容易令人沮丧的工作,所以线程被锁定太长时间 ...
       在这边文章中,我将会介绍如何去实现一个在Android系统中不常见的布局:文字围绕图片布局。        这个布局并不属于Android模式,但在处理相同的情景下,它是一样的实用。        在你正式使用它到实践项目前,你需对其进行一定的修改,毕竟它只是一个例子代码        以下是例子的布局:   <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> ...
      为了记录如何线程安全地访问你的Android数据库实例,我写下了这篇小小札记。文章中引用的项目代码请点击这里       假设你已编写了自己的 SQLiteOpenHelper。 public class DatabaseHelper extends SQLiteOpenHelper { ... }         现在你想在不同的线程中对数据库进行写数据操作: // Thread 1 Context context = getApplicationContext(); DatabaseHelper helper = new DatabaseHelper(con ...
Robotium 是一款基于Android instrumentation framework 的自动化测试工具库,功能十分强悍,而且上手简单,只要求有Junit基础即可。 先关注instrumentation 提供的三个基类: 1. SingleLaunchActivityTestCase         单activity测试实例,只调用setup和tearDown方法 2. ActivityUnitTestCase                     单activity测试实例 3. ActivityInstrumentationTestCase2   针对多Activity测试或 ...
Monkeyrunner----Android tools中的测试工具 ,主要通过脚本,实现模拟用户对appUI界面的操作,完成对app的黑盒测试。   利弊: 1、可以完成一定复杂程度的测试用例,避免重复的人工工作量; 2、结合heap、strict mode等工具,可以 ...
典型的Java项目总会引用各种第三方库。本文为各种不同的应用总结了最流行、并被广泛使用的Java库。其中一些还提供了一个简单的例子,如果它上可以找到 ProgramCreek 的。 最被广泛使用的库肯定非Java SDK莫属啦。因此,这次名单的焦点是介绍当前流行的第三方开发库。 1、核心库 Apache Commons Lang – 这个库对 SDK中 java.lang 的 API补充了非常有用的工具类,例如字符串操作,创建对象等等。 Google Guava – 由Google提供的核心库,主要用于容器(Collection),缓存(Caching),支持原函数(Primitiv ...
 PendingIntent 是对真实Intent的一种封装载体,可以用来在出发时,根据Intent 唤起目标组件,如 Activity,Service,BroadcastReceiver 等。    例如,一般的推广行为:接收后台推送消息,并展示在通知栏上,当用户点击消息通知后, ...
 一、ScrollView + GridView  在ScrollView中放置GridView,无论GridView的高度是设置 wrap_content,还是 match_parent,最终渲染时GridView都会发生形变,原因是 ScrollView 不能正确算出 GridView 的实际显示高度。    解决方法有两个:    设定GridView 高度的dp值,同时也可配合使用 values/dimens.xml 进行适配,缺点是适配难度大,不灵活,而且 GridView 的 Adapter 中的 convertView 可能不再重用(GridView不能滚动),导致 ...
执行 svn update,却抛出个错误警报: svn: E200033: database is locked, executing statement 'RELEASE s0'   之后无论是cleanup,还是release locker都没反应!   别急,试试以下方案: $ cd /your project path/.svn $ mv wc.db wc.db.old #做事都要有备份的习惯 $ sqlite3 wc.db.old #打开copy的数据库 sqlite> .backup main wc.db sq ...
  在使用Java反射时,总是只记着: Class.forName(className).newInstance()   那对构造函数带参数的Class又如何反射呢? Class cls = Class.forName(className); Class[] paramTypes = { String.class }; Object[] params = { "param" }; Constr ...
在Linux下,ps是非常普通的命令: ps -aux 查看所有正在运行的进程 ps | grep xxx 显示过滤指定名称的进程 可是以上的命令在Android上,都不起作用! What?!!!Android不是基于Linux系统的吗?对,准确来说,Android是Google基于Linux的 ...
  其实webview加载资源的速度并不慢,但是如果资源多了,当然就很慢。图片、 css 、 js 、 html 这些资源每个大概需要 10-200ms ,一般都是 30ms 就 ok 了。不过webview是必须等到全部资源都完成加载,才会进行渲染的,所以加载的速度很重要!从Google上我们了解到,webview 加载页面的顺序是:先加载 html ,然后从里面解析出 css 、 js 文件和页面上的图片资源进行加载。如果 webkit 的缓存里面有,就不加载。加载完这些资源之后,就进行 css 的渲染和 js 的执行。 Css 的渲染一般不需要很长时间,几十毫秒就 ok 。关键是 js ...
    Textview在日常开发工作中使用非常频繁,在这里简单总结一下其比较重要的用法。目标是设置textview的中一段文字的显示属性,例如指定文字要下划线显示(@XXX、#XXX#),文字替换成图片,文字加重、变色、变大等。 实现的基本思路都是将指定的文字找出来,然后用实现Spananble接口的子类覆盖,即可。     Spananble只是一个接口,它的继承关系是:Spananble->Spanned->CharSequence       因为Spannable继承于CharSequence接口,因而,TextView可以直接setText,Spannable的实 ...
本地代码中使用Java对象 通过使用合适的JNI函数,你可以创建Java对象,get、set 静态(static)和 实例(instance)的域,调用静态(static)和实例(instance)函数。JNI通过ID识别域和方法,一个域或方法的ID是任何处理域和方法的函数的 ...
Jni 可以通过JNIEnv提供的方法,对传过来的Java数组进行相应的操作。它提供了两种函数:一种是操作Java的简单型数组的,另一种是操作对象类型数组的。   操作Java的简单型数组 因为速度的原因,简单类型的Java数组,会作为指向本地类型的指针暴露给本地代码调用。因此,它们能作为常规的数组存取。这个指针是指向实际的Java数组或者Java数组的拷贝的指针。另外,数组的布置保证匹配本地类型。 在C/C++中,jintArray 不能用下标对其进行直接存取,必须用到JNI中提供的接口函数进行操作。 为了存取Java简单类型的数组,就要要使用GetXXXArrayElements函 ...
Global site tag (gtag.js) - Google Analytics