任何问题请联系WX:uu16853

买模板送网站采集器 让你轻松放开双手运营网站!

购买更多有优惠!

Android NDK开发相关问题汇总 Android开发技术

  有关Android NDK开发的相关问题,仍然有不少网友存在问题,下面就常见的问题Android123总结如下:   1. Android 1.5如果调用C++库,都支持哪些方法?   由于Android 1.5 API Level为3,当初提供的类和函数可以在NDK下查看include目录中找到<cstddef>、   <new>、  <utility> 和   <stl_pair.h> 可以看到都是语言运行库和基本的数据类型。   2. NDK下的log支持,这里大家可以包含<android/log.h>这个头文件,同时在mk文件中加入LOCAL_LDLIBS := -llog 这个库文件即可。   3. NDK下处理Zip文件的压缩、解压处理通过zlib库来解决,Android内置了zlib库可以通过包含<zlib.h> 和 <zconf.h>两个头文件解决,LOCAL_LDLIBS := -lz。   以上的都可以在Android 1.5或更高的固件上运行,而对于Android 2.0到2.1之间的三个版本主要是OpenGL ES的支持。

有关Android签名问题总结 Android开发技术

  在整个平台的安全性方面Google也使用了Android签名机制,当然这里使用Sun的针对Jar文件签名工具jarsigner即可,这里我们需要了解一些问题,为什么要签名? 其实安装到真机G1的软件都必须签名。   平时我们在Android Market上下载的软件都必需签名,所以说上传时是免不了这个操作的,常规的签名步骤可以查看 Android签名用keytool和jarsigner制作apk文件 这点Google设计的还好,没有像Symbian那样针对S60第三版和第五版都需要花费每次200美元的测试费用,如果遇到了ZipException invalid entry compressed size的错误方法过去我们在无法对jar进行签名,Android jarsigner问题一文中提到了,主要原因是平时Eclipse使用的ADT插件已经赋予了DEBUG权限的数字签名,我们可以通过导出一个未签名的APK文件就可以解决,参考如何导出一个未签名的APK文件?即可顺利的签名。

AsyncTask解决Android UI堵塞问题 Android开发技术

   平时我们在开发Android程序时遇到较耗时任务的处理,如I/O访问的数据库操作、网络访问等情况时造成UI假死等问题,通过AsyncTask可以很好的解决这个问题,就今天以在Android中执行Downloader.downloadFile(url),可能会堵塞整个界面。显然这会影响用户体验,我们如何解决这个问题呢?  方法一、   创建一个新的线程执行我们的任务,使用Thread类,在 run(){}中写入任务代码,比如:   new Thread(new Runnable() {                     public void run() {                                                   Downloader.downloadFile(url);                   }                 }).start(); 但使用Thread会产生一些意想不到的问题,需要程序员用更多的代码手动的维护它。  方法二: Android SDK为我们提供了一个后台任务的处理工具AsyncTask。AsyncTask就是一个封装过的后台任务类顾名思义就是异步任务,方便我们维护,Android开发网提示这样的好处可以解决一些线程安全问题,AsyncTask直接继承于Object类,位置为android.os.AsyncTask<Params, Progress, Result>。要使用AsyncTask工作我们要提供三个泛型参数,并重载四个方法(至少重载一个)。 三个泛型:Param ,任务执行器需要的数据类型Progress 后台计算中使用的进度单位数据类型Result 后台计算返回结果的数据类型有些参数是可以设置为不使用的,只要传递为Void型即可,比如AsyncTask<Void, Void, Void> 四个步骤:onPreExecute(),执行预处理,它运行于UI线程,可以为后台任务做一些准备工作,比如绘制一个进度条控件。doInBackground(Params…),后台进程执行的具体计算在这里实现,doInBackground(Params…)是AsyncTask的关键,此方法必须重载。在这个方法内可以使用publishProgress(Progress…)改变当前的进度值。onProgressUpdate(Progress…),运行于UI线程。如果在doInBackground(Params…)中使用了publishProgress(Progress…),就会触发这个方法。在这里可以对进度条控件根据进度值做出具体的响应。onPostExecute(Result),运行于UI线程,可以对后台任务的结果做出处理,结果就是doInBackground(Params…)的返回值。此方法也要经常重载,如果Result为null表明后台任务没有完成(被取消或者出现异常)。 AsyncTask实例代码: private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {     protected Long doInBackground(URL… urls) {         int count = urls.length;         long totalSize = 0;         […]

100% Secure Checkout

PayPal / MasterCard / Visa