by fox64194167
之前一直用Activity中的onCreateDialog方法来创建dialog,现在在弄Android 4.0,API一直提示onCreateDialog”This method is deprecated”,推荐使用DialogFragment,去Android 官网网站查了下DialogFragment的使用方法,第一个例子为了介绍style和theme,显得非常复杂,还不知道如何设置title。稍微修改了下第二个”Alert Dialog”例子,写在这里。
by fox64194167
事情的起因:下面这个在java中调用就返回乱码了。
jstring Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, “你好”);
}
by fox64194167
1.Android JNI介绍
Jni(Java Native Interface)是sun提供的java与系统中的原生方法交互的技术(在windows\linux系统中,实现java与native method互调)。目前只能由c/c++实现。
Android 底层是LInux,C,C++。有时候我们APK应用里也会调用C,C++的方法,虽然这种方式用的不多,我们还是要看下如何实现的。估计大公司JNI 会用的比较多,C,C++实现的东西容易跨平台,效率有时候会比JAVA高点。
by fox64194167
一般在做网页的时候,要显示一个列表的数据,一般是对一个list的类进行循环,输出一大串的HTML字符串。数据比较多的话就会分页,比如一页10条记录,去数据库查询的时候就会limit 10条记录,速度非常快。
在 Android中遇到几千条数据的时候,上下滑动,跟几十条数据的滑动流畅程度差不多,就是刚开始载入速度不一样。对Android 中的Adapter 数据绑定,进行Log输出后,发现是边滑动,数据边绑定的,并不是有多少数据一次性绑定完。但是数据一般是用sql 语句一次性查询出来,这点跟Web中的还是有点区别。
by fox64194167
之前做网站一直都用px(像素)这个单位,到了安卓里了出现了dip。dip跟px有什么区别呢?
by fox64194167
进行Android Service 测试之前要稍微熟悉Android Service的生命周期,onCreate只执行一次,完了后是OnStart()。对于一个已经启动的Service来说,再次调用startService()只会执行OnStart()了。
by fox64194167
Android官方的解释是:Extend this if you need to access Resources or other things that depend on Activity Context.,如果你需要用到资源或者Activity Content,可以继承这个类进行单元测试。
我们这里拿Android中例子 “NotePad” 中的Content Provider来做测试。
by fox64194167
上篇我们讲到了普通的类测试,这次我们来关注下有控件的Android Activity是如何进行单元测试的。
首先我们写一个简单的Activity ,叫CalculateActivity,很简单里面有两个输入框,一个按钮,点击按钮就能得到两个输入框中输入数字的求和。
by fox64194167
现在写程序写着写着对自己写的程序就没有信心了,代码量的上升,逻辑越来越复杂,非常需要单元测试(Unit Test)。现在感觉没有单元测试和版本控制,一个项目很容易崩溃。对程序的一点修改很可能会影响整个项目的实现。之前单元测试只是用过JUnit 。现在让我们来看下Android 中的单元测试是如何实现的。
by fox64194167
1.何为首选项(Preference)?
Preference翻译成首选项有点生硬,但似乎也找到不其他更好的翻译,preference在英语的翻译是“偏爱,优先权”的意思。
Android 首选项是用来在Android中读取和存储一些数据,通常是配置项,当然完全还有其他方式能实现,比如数据库或者文件,为什么要使用Android中首选 项,个人的理解是一些配置文件存在数据库中还要一张表来存,而且只有一行数据,还要自己写读取和保存方法,实在是累的很。在这提下,Android中的首 选项最终是把数据按一定格式存到XMl文件中的,最后我们可以看到,数据的具体样子。