About getExternalFilesDir()

Posted by & filed under Android.

It is always good practice to use the getExtennalFilesDir() method to find the location of the SD Card on an Android device.(Don’t fix using \sdcard). Because Android can run on a large number of devices with different specications, the location …

Android 开发人员必须掌握的 10 个开发工具 –转自oschina.net

Posted by & filed under Android.

Android SDK 本身包含很多帮助开发人员设计、开发、测试和发布 Android 应用的工具,在本文中,我们将讨论 10 个最常用的工具。

#1: Eclipse ADT

Eclipse ADT 是 Eclipse 平台下用来开发 Android 应用程序的插件。

Eclipse + ADT

#2: The SDK and AVD Manager

该工具包含很多重要的功能,包括管理不同的 Android SDK 版本(构建目标),你知道的 Android 的版本众多,API上有些兼容性问题。另外该工具还用于管理 Android 虚拟设备配置 (AVD) ,用来配置模拟器。

#3: Android Debug Bridge

adb(Android Debug Bridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态。…

android的国际化和本地化

Posted by & filed under Android.

internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n。 一般说明一个地区的语言时,用 语言_地区的形式,如  zh_CN, zh_TW.

各国语言缩写  http://www.loc.gov/standards/iso639-2/php/code_list.php,国家和地区简写http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

 

android 对i18n和L10n提供了非常好的支持。android没有专门的API来提供国际化,而是通过对不同resource的命名来达到国际化,同时这种命名方法还可用于对硬件的区分,如不同的新视屏用不同的图片。

      在eclipse的工程中,res目录有默认几项resource,如 drawable, layout,menu,values

其余还有

res/anim/   用来放置动画
res/xml/     用来放置style theme等xml定义。
res/raw/    用来放置data数据

android res 结构

 

 我们引用这些resource时候,在java代码中是通过R.resource_type.resource_name的方式来使用,如setTitle(R.string.main_title);

还有一种是在xml中直接引用,如

<TextView  
    android:id =”@+id/hello_view”
    android:layout_width=”fill_parent” 
    android:layout_height=”wrap_content” 
    android:text=”@string/hello”

Android中利用App实现消息推送机制的代码实例

Posted by & filed under Android.

 

1.消息推送机制
    
服务器器端需要变被动为主动,通知客户一些开发商认为重要的信息,无论应用程序是否正在运行或者关闭。
    
我想到了一句话:don’t call me,i will call you!
     qq
今天在右下角弹出了一个对话框:奥巴马宣布本拉登挂了…”,正是如此。
    
自作聪明,就会带点小聪明,有人喜欢就有人讨厌。

2.独立进程
    
无论程序是否正在运行,我们都要能通知到客户,我们需要一个独立进程的后台服务。
    
我们需要一个独立进程的后台服务。
    
androidmanifest.xml中注册service时,有一个android:process属性,如果这个属性以“.”开头,则为此服务开启一个

全局的独立进程,如果以“:”

Android中如何做到Service被关闭后又自动启动

Posted by & filed under Android.

首先要说的是,用户可能把这种做法视为流氓软件。大部分时候,程序员也不想把软件做成流氓软件,没办法,领导说了算。

 

我们在使用某些Android应用的时候,可能会发现安装了某应用以后,会有一些服务也会随之运行。而且,这些服务每次都会随着手机开机而启动。有的服务做的更绝,当用户在运行的服务中手动停止该服务以后,过了一段时间,服务又自动运行了。虽然,从用户的角度来说,这种方式比较流氓。但是,从程序员的角度来说,这是如何做到的呢?经过研究,我发现有一种方式是可以实现的。下面就和大家分享。

 

先简单介绍,一会儿会贴上全部代码。

 

如何做到开机启动?

 

这个比较简单,网上的资料够多,只要实现一个BroadcastReceiver,监听手机启动完成的事件ACTION_BOOT_COMPLETED即可。需要注意的是,好像不能用模拟器,要用手机测试。

 

那如何做到启动一个Service,并且在用户关闭后能自动又启动了呢?

 

一般的,都会在上面说到的BroadcastReceiver的实现里面,监听手机启动完成后,启动一个Service,这是一般的做法。问题是,用户可以关闭掉该Service。那么怎样才能使它被关闭掉以后,再次启动呢?聪明的你一定立即就想到了,如果不直接启动Service,而是启动一个timmer,或者alarmManager,然后每隔一段时间去启动Service,就可以了。

 

 

还是看下面的全部代码吧,不过多解释了。这些代码中还是有不少概念的,不熟悉AlarmManager、PendingIntent、BroadcastReceiver、Service等等这些概念的同学可以百度一下。

 

  1. package com.arui.framework.android.daemonservice;  
  2.   
  3. import android.app.AlarmManager;  
  4. import android.app.PendingIntent;  
  5. import android.content.BroadcastReceiver;  
  6. import android.content.Context;  
  7. import android.content.Intent;  
  8. import android.os.SystemClock;  
  9.   
  10. public class BootBroadcast extends BroadcastReceiver {  
  11.   

Android中Context详解 —- 你所不知道的Context

Posted by & filed under Android.

             前言:本文是我读《Android内核剖析》第7章 后形成的读书笔记 ,在此向欲了解Android框架的书籍推荐此书。

          大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友—–Context类 ,说它熟悉,是应为我们在开发中

   时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ; 说它陌生,完全是

   因为我们真正的不懂Context的原理、类结构关系。一个简单的问题是,一个应用程序App中存在多少个Context实例对象呢?

   一个、两个? 在此先卖个关子吧。读了本文,相信您会豁然开朗的 。

  

      Context,中文直译为“上下文”,SDK中对其说明如下:

         Interface to global information about an application environment. This is