- 浏览: 125078 次
- 性别:
- 来自: 深圳
最新评论
-
AndLi:
高手
Android 实现书籍翻页效果----原理篇 -
niuniulife2011:
没听懂,任何事情任何人都可以做吧
程序员感想 -
chenliang1234576:
程序员开网店有木有搞头撒?
程序员感想 -
liyanginchina:
请问一下,
1、 A和B分别与S的【主连接】保持联系。
那么 ...
TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞 -
niuniulife2011:
一起进步,我的东西,有些是看了别人的,但是在看了别人的之后,都 ...
windows系统上使用Android NDK r5
文章列表
NDK-提供的功能宏
- - - - - - - - - - - - - -
下面是GNU Make ‘功能’宏,必须通过使用'$(call <function>)'来求值,他们返回文本化的信息。
my-dir
返回当前 Android.mk所在的目录路径,相对于NDK编译系统的顶层。这是有用的,在 ...
一、cygwin安装及有关工具的安装见上篇文章
http://niuniulife2011.iteye.com/blog/1114051
安装完成之后,下面来测试一个cygwin是否安装成功:
运行cygwin,在弹出的命令行窗口输入:cygcheck -c
cygwin命令,会打印出当前cygwi ...
我们可以到Cygwin的官方网站下载Cygwin的安装程序,地址是:
http://www.cygwin.com/
或者直接使用下载连接来下载安装程序,下载连接是:
http://www.cygwin.com/setup.exe
下载完成后,运行setup.exe程序,出现安装画面。直接点“下一步”,出现安装模式的对话框,如下图所示:
我们看到有三种安装模式:
Install from Internet,这种模式直接从Internet安装,适合网速较快的情况;
Download Without Installing,这种模式只从网上下载Cygwin的组件包,但不安装 ...
刚学android,在windows xp上开发的,不会makefile,ndk还没仔细研究,或许对一些初学者有用。
一、Android Apk签名
Apk签名首先要有一个keystore的签名用的文件。
keystore是由jdk自带的工具keytool生成的。
具体生成方式参考:
开始->运行 ...
特殊的队列:BlockingQueue,如果BlockingQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒,同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueue里有空间时才会被唤醒继续操作。可以随意指定队列的大小容量,当容量满时,生产者进入等待状态,当容量空时,消费者等待。
BlockingQueue定义的常用方法如下:
1)add(anObject):把anObject加到BlockingQueue里,如果BlockingQueue ...
为什么要关闭组件?
在用到组件时,有时候我们可能暂时性的不使用组件,但又不想把组件kill掉,比如创建了一个broadcastReceiver广播监听器,用来想监听第一次开机启动后获得系统的许多相关信息,并保存在文件中,这样以后每次开机启动就不需要再去启动该服务了,也就是说如果没有把receiver关闭掉,就算是不做数据处理,但程序却还一直在后台运行会消耗电量和内存,这时候就需要把这个receiver给关闭掉。
如何关闭组件?
关闭组件其实并不难,只要创建packageManager对象和ComponentName对象,并调用packageManager对象的setComponentEn ...
对于Handler来说,它和与它调用它的Activity是出于同一线程的,上一篇并没有调用线程
的start方法,而是直接执行的run方法。而启动一个线程是调用的start方法
上一篇博客里的对Handler的调用时通过Runnable接口来实现的,并且是通过run()方法来启动那个线程的,而且是Activity和Handler是两个线程独立运行的,互补干扰,但是实际情况确实,Activity所在的线程和Handler的线程是同一个线程,下面进行一下实验
Java代码
package org.hualang.handlertest3;
import android.ap ...
在android中,有很多功能是不能放在onCreate或者onStart方法里面,因为这些功能相对
来说费时比较长,比如说下载一个文件,下载的过程比较长,但是如果写在Activity中,
那么这段时间Activity是完全没有响应的,那么就可以将这种处理大量数据或者耗时比较
长的东西放在一个单独的线程中来完成,即Activity是一个线程,而下载的是在另外一个
线程,那么这样就可以使得下载跟Activity之间互不影响,从而得到了良好的用户体验
这里有两种队列,一种是线程队列,就是用postXX方法或者removeCallbacks方法对线程对象的操作。另一种是消息队列,用sendM ...
最近刚出了android2.3,想尝一下鲜。用Sdk Manager.exe升级完了之后,eclipse报错:Could not find E:\android-sdk-windows\tools\adb.exe! 想了好久没有找到想到解决方案,最后在网上找到了方法,在这里整理一下
虽然在tools文件夹下找不到adb.exe,但是在platform-tools文件夹下有这个adb.exe,所以最简单的解决方法就是把它拷过去就行了,实验证明是可以用的(oh yeah)。
【背景描述】
系统环境变化:Vista HomeBasic -> Vista Ultimate(方式:OEM升级)
编译环境变化:vs2005 -> vs2008(方式:卸载后重装)
杀毒软件变化:Kaspersky -> Sophos
升级之后一段时间一直保持着系统还原点,用了一个月看着还稳定,于是就删除了系统还原点。谁知今天在命令行下使用cl编译的时候,竟然提示:fatal error LNK1104: 无法打开文件“kernel32.lib”,所幸在IDE里面运行没有问题。
前些天还可以用cl的,想想有可能的是可恶的Sophos把我的文件删除了,哭。(Sophos竟然没有 ...
由于执行C:\Program Files\Microsoft Visual Studio 9.0\VC\bin下的vcvars32.bat每次只是在当前命令行窗口起作用,设置环境变量后就更方便操作了
首先是cl命令行目录:C:\Program Files\Microsoft Visual Studio 9.0\VC\bin,将它加到path环境变量下面
添加lib与include环境变量:
lib:C:\Program Files\Microsoft Visual Studio 9.0\VC\lib
include:C:\Program Files\Microsoft Visual St ...
一、JNI简介
JNI:Java Native Interface,是Java语言提供的一种通用接口,用于Java代码与本地化代码的交互。所谓本地化代码是指直接编译成的与机器相关的二进制代码,而非Java字节码之类的中间代码。Windows下面的可执行文件,DLL等,Linux下面的可执行文件和SO文件等,都是二进制代码。
JNI允许Java语言编写的程序与其他语言编写的程序库(DLL, SO)或可执行文件进行互操作,包括汇编、C、C++。
JNI产生的原因在于以下几种需求:
(1). 你的应用程序需要使用系统相关的功能,而Java代码不支持或是难以办到。这个比较典型的是实现托盘图标,有 ...
6月30日,据外电报道,Google移动事业副总裁 Andy Rubin在推特(Twitter) 上发文宣布,每天新启用的 Android操作系统设备数量,已超越 50 万个。
Rubin补充说,换算为 Android 系统每周启用成长速度,已达 4.4%。根据《GigaOM》报导,5 月份 Android 每日新启用数量,已由一年前的 10 万跃增至 40 万。换句话说,Android 目前成长速度达到空前新高。
《PCWorld》试图列举 Android 强劲成长的原因。首先,由于美国通讯服务巨擘 AT&T (T-US) 不再享有独家代理贩卖苹果 (Apple)( ...
在系统安装的的底层常规应用中,是通过PackageInstaller来识别程序安装的intent来执行安装:
Java代码
package cn.com;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
public class InstallApk extends Activity {
/** Called when the activity is first c ...
废话少说,直接上代码,会加上详细注释:
测试地址:http://www.dubblogs.cc:8751/Android/Test/Apk/EX04_14.apk
Java代码
package cn.com;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
impo ...