`
文章列表
当一个应用程序组件启动,并且应用程序没有任何其它组件在运行,Android系统为应用程序启动一个新的Linux process单线程。默认情况下,同一个应用程序中的所有组件运行在相同的process和thread中(叫做“main”thread)。如果一个应 ...
Content Provider管理着对一个有结构的数据集的访问。他们包装数据,并为定义数据安全提供机制。Content Provider是将一个process中的数据和运行在另一个process中的代码相连接的标准的接口。   当时想要访问一个content provider中的数据,你可以使用你的应用程序的Context的ContentResolver对象作为一个client来与provider进行交流。ContentResolver对象交流的provider对象,是一个实现了ContentProvider类的一个实例。provider对象接收来自clients的数据请求,执行请求动作, ...
一个应用程序的3种核心组件--activities,services,和broadcast receivers--都是通过一种叫做intents的消息来激活的。Intent消息是一种用来在相同或不同应用程序的组件之间提供后期运行绑定的一种工具。intent本身是一个Intent对象,是一种 ...
Service 是这样一个组件,它能够在后台执行一个长时间的操作,并且不提供一个用户接口。其他的组件可以启动一个service并且它会一直运行咋后台background,即时用户切换到其他的应用程序。另外,一个组件可以绑定到一个serveice来与它交互,甚至执行进程内部交流interprocess communication(IPC)。例如,一个service可能处理网络事物,播放音乐,执行文件I/O,或者与一个content provider交互,全都是在后台执行的。   一个service基本上来说有两种形式:   Started 一个service的“started”状态 ...
一个Activity是一个应用程序的组件,它提供了一个用户可以进行交互的屏幕,例如拨打电话,拍照,发送邮件,或者查看地图。每个activity都提供了一个window用来绘制用户接口。这个window通常填充屏幕,但是可能比屏幕小并且悬浮在其他的window上面。   一个应用程序通常由多个松弛结合的activity构成,通常,一个应用程序会指定一个activity作为“main”activity,用来在用户启动程序的时候首先被显示。每个activity可以启动其它的activity为了执行更多的操作,每次一个新的activity被启动,之前的那个activity就会被停止(stop),但是 ...
Android应用程序使用的是Java语言编写。Android SDK工具将代码,数据和资源文件编译进一个Android包,一个以.apk结尾的文件。一个.apk文件被认为是一个应用程序。   一旦被安装到设备上,每个Android应用程序运行在它自己的安全沙 ...
微信中的ListView有一个特点就是存在许多不同的Item,即并不是平常的ListView,所有的Item布局都是一样的。针对这种情况,Google的Adapter提供了两个方法getItemViewType和getViewTypeCount。通过覆盖这两个方法就可以实现一个ListView中存在多种不同的Layout。实现了更加个性化的ListView效果。我归纳了下微信中的Item可以分为7中。针对这7种Item我对应地写了7中listItem。在getView的时候判断下当前数据对象中需要通过哪种布局来展现,来实时获取布局。   下面看代码:   Message.java   ...
本例演示如何通过Intent来打开手机sd卡中的word,pdf文件,这里实际上是通过Intent打开手机中能够阅读word,或pdf的应用,让那个应用来打开文件。而不是我们这个例子本身能够打开文件。   直接上代码:   activity_main.xml:   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android ...
这篇博客实现的是在项目中调用C文件来实现两个数的相加。 本文仅供参考,如果有不足的地方,欢迎指出。   主要有这么几个步骤:   步骤一: 在你的工程中新建一个类,这个类有两个作用,1.通过这个类,和本地C/C++代 ...
昨天发现自己的Lint Warning工具不能检测出Manifest.xml中的错误。而同事的可以(他的sdk和Eclipse都是最新版本),以为是Android sdk的版本不够高,打开SDK Manager,更新了,但是还是没有起效果。决定更新Eclipse,选择Help->Check for Updates .出现错误:   http://eclipsecolorthemes.org这个链接是原来设置Eclipse编辑背景颜色,而添加的。不知道为什么会出现这个问题。 解决方法:   找到这个出错的链接,把前面的钩钩去掉即可。            
在网络上查找的环境搭建的步骤以及命令很多都过时了,今天自己安装了以后,将步骤记录在这里供大家参考。本教程中的NDK版本为android-ndk-r8c   需要准备的东西: NDK Cygwin   NDK需要一个C/C++编译环境才能使用。因此在Windows上不仅需要安装NDK,还需要安装相应的C/C++环境,这就是Cygwin。   NDK下载地址(直接在sdk中搜索NDK,第一条就是):http://developer.android.com/tools/sdk/ndk/index.html Cygwin下载地址:http://www.cygwin.co ...
平时在开发的时候,最常用的是在本页面中进行搜索,直接ctrl+F 如果要看某个方法或变量在哪里被调用的时候,通常是右键点击这个方法名或变量名,选择 open Call Hierarchy   那么当你想要查找某个类在哪里被调用到的话,该如何做呢? 这时候就要使用Eclipse选项卡上面的Search页了,快捷键是ctrl+H 打开界面如下:     你可以在这个界面做一些搜索设置。   搜索结果如下:     这样就可以看到你的这个类在哪里被使用到了。还是比较方便的。    

android Lint

在检查程序是否符合规范(各种警告)的时候,Android为我们提供了一个很好的工具Lint   使用方法:右键你的项目->Android Tools->Run Lint:Check For Common Errors   运行后会弹出一个窗口 Lint Warnings 在这里面就显示了很多你的程序中隐藏的问题。接下去就按照里面的提示进行修改吧。      
  /** * 状态栏和标题栏的高度 * * * */ private void print(){ LinearLayout lySpin = new LinearLayout(this); lySpin.setOrientation(LinearLayout.VERTICAL); lySpin.post(new Runnable() { public void run() { ...
虽然很简单,而且没有什么价值,但还是记录一下方便自己查找使用:   InputMethodManager inputMethodManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);   这 ...
Global site tag (gtag.js) - Google Analytics