`
文章列表
NDK-提供的功能宏 - - - - - - - - - - - - - - 下面是GNU Make ‘功能’宏,必须通过使用'$(call <function>)'来求值,他们返回文本化的信息。 my-dir 返回当前 Android.mk所在的目录路径,相对于NDK编译系统的顶层。这是有用的,在 ...
一、cygwin安装及有关工具的安装见上篇文章 http://niuniulife2011.iteye.com/blog/1114051 安装完成之后,下面来测试一个cygwin是否安装成功:       运行cygwin,在弹出的命令行窗口输入:cygcheck -c        cygwin命令,会打印出当前cygwi ...

下载安装Cygwin

    博客分类:
  • NDK
我们可以到Cygwin的官方网站下载Cygwin的安装程序,地址是:     http://www.cygwin.com/ 或者直接使用下载连接来下载安装程序,下载连接是:     http://www.cygwin.com/setup.exe 下载完成后,运行setup.exe程序,出现安装画面。直接点“下一步”,出现安装模式的对话框,如下图所示: 我们看到有三种安装模式: Install from Internet,这种模式直接从Internet安装,适合网速较快的情况; Download Without Installing,这种模式只从网上下载Cygwin的组件包,但不安装 ...

APK签名

刚学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 ...
Global site tag (gtag.js) - Google Analytics