How to Change Your Browser’s User Agent Without Installing Any Extensions – How-To Geek

How to Change Your Browser’s User Agent Without Installing Any Extensions – How-To Geek. How to Change Your Browser’s User Agent Without Installing Any Extensions All popular browsers offer build-in user agent switchers, so you can change your user agent without installing any extensions. Google Chrome and Internet Explorer both include user agent switchers in […]

Read More…

About getExternalFilesDir()

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 of the SD Card directory may not always be in /sdcard. […]

Read More…

Manipulating Broadcast Receivers On Demand

The simplest way to monitor device state changes is to create aBroadcastReceiver for each state you’re monitoring and register each of them in your application manifest. Then within each of these receivers you simply reschedule your recurring alarms based on the current device state. A side-effect of this approach is that your app will wake the […]

Read More…

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

Android SDK 本身包含很多帮助开发人员设计、开发、测试和发布 Android 应用的工具,在本文中,我们将讨论 10 个最常用的工具。 #1: Eclipse ADT Eclipse ADT 是 Eclipse 平台下用来开发 Android 应用程序的插件。 #2: The SDK and AVD Manager 该工具包含很多重要的功能,包括管理不同的 Android SDK 版本(构建目标),你知道的 Android 的版本众多,API上有些兼容性问题。另外该工具还用于管理 Android 虚拟设备配置 (AVD) ,用来配置模拟器。 #3: Android Debug Bridge adb(Android Debug Bridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态。 还可以进行以下的操作: 1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级; 2、在设备上运行shell命令; 3、管理设备或手机模拟器上的预定端口; 4、在设备或手机模拟器上复制或粘贴文件; #4: Dalvik Debug Monitor Server DDMS 的全称是Dalvik Debug Monitor Service,它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等。 #5: […]

Read More…

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数据    我们引用这些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”     />      引用了名字为hello的字符串。当程序运行时,通过Resource类会装载strings.xml中名字为hello的字符串。但Resource类装载strings.xml时会根据当前手机的设置来选择装载哪一个xml文件。这些手机设置有 MCC and MNC, Language and region, Screen dimensions, Wider/taller screens, Screen orientation,Screen pixel density, Touchscreen type, […]

Read More…

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

  1.消息推送机制      服务器器端需要变被动为主动,通知客户一些开发商认为重要的信息,无论应用程序是否正在运行或者关闭。      我想到了一句话:don’t call me,i will call you!      qq今天在右下角弹出了一个对话框:“奥巴马宣布本拉登挂了…”,正是如此。      自作聪明,就会带点小聪明,有人喜欢就有人讨厌。 2.独立进程      无论程序是否正在运行,我们都要能通知到客户,我们需要一个独立进程的后台服务。      我们需要一个独立进程的后台服务。      在androidmanifest.xml中注册service时,有一个android:process属性,如果这个属性以“.”开头,则为此服务开启一个 全局的独立进程,如果以“:”开头则为此服务开启一个为此应用私有的独立进程。举个具体的例子吧,我们新建了一个 application,创建了主进程com.cnblogs.tianxia,那么: view sourceprint?1 <!–下面会创建一个全局的com.cnblogs.tianxia.message的独立进程–> 2 <service android:name=”.service.messageservice” android:label=”消息推送” android:process=”.message” />  3 <!–或者–> 4 <!–下面会创建一个应用私有的com.cnblogs.tianxia:message的独立进程–> 5 <service android:name=”.service.messageservice” android:label=”消息推送” android:process=”:message” />     我们没必要建立一个全局的,本文选择第二种方案,创建一个当前应用私有的独立进程。 3.通知用户和点击查看 view sourceprint?01 public class messageservice extends service {  02    […]

Read More…

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

首先要说的是,用户可能把这种做法视为流氓软件。大部分时候,程序员也不想把软件做成流氓软件,没办法,领导说了算。   我们在使用某些Android应用的时候,可能会发现安装了某应用以后,会有一些服务也会随之运行。而且,这些服务每次都会随着手机开机而启动。有的服务做的更绝,当用户在运行的服务中手动停止该服务以后,过了一段时间,服务又自动运行了。虽然,从用户的角度来说,这种方式比较流氓。但是,从程序员的角度来说,这是如何做到的呢?经过研究,我发现有一种方式是可以实现的。下面就和大家分享。   先简单介绍,一会儿会贴上全部代码。   如何做到开机启动?   这个比较简单,网上的资料够多,只要实现一个BroadcastReceiver,监听手机启动完成的事件ACTION_BOOT_COMPLETED即可。需要注意的是,好像不能用模拟器,要用手机测试。   那如何做到启动一个Service,并且在用户关闭后能自动又启动了呢?   一般的,都会在上面说到的BroadcastReceiver的实现里面,监听手机启动完成后,启动一个Service,这是一般的做法。问题是,用户可以关闭掉该Service。那么怎样才能使它被关闭掉以后,再次启动呢?聪明的你一定立即就想到了,如果不直接启动Service,而是启动一个timmer,或者alarmManager,然后每隔一段时间去启动Service,就可以了。     还是看下面的全部代码吧,不过多解释了。这些代码中还是有不少概念的,不熟悉AlarmManager、PendingIntent、BroadcastReceiver、Service等等这些概念的同学可以百度一下。   package com.arui.framework.android.daemonservice;      import android.app.AlarmManager;   import android.app.PendingIntent;   import android.content.BroadcastReceiver;   import android.content.Context;   import android.content.Intent;   import android.os.SystemClock;      public class BootBroadcast extends BroadcastReceiver {          @Override       public void onReceive(Context context, Intent mintent) {              if (Intent.ACTION_BOOT_COMPLETED.equals(mintent.getAction())) {               // 启动完成               Intent intent = new Intent(context, Alarmreceiver.class);               intent.setAction(“arui.alarm.action”);               PendingIntent sender = PendingIntent.getBroadcast(context, 0,                       intent, 0);               long firstime = SystemClock.elapsedRealtime();               AlarmManager am = (AlarmManager) context                       .getSystemService(Context.ALARM_SERVICE);                  // 10秒一个周期,不停的发送广播               am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstime,                       10 * 1000, sender);           }          }   }     package com.arui.framework.android.daemonservice;      import android.content.BroadcastReceiver;   import android.content.Context;   import android.content.Intent;      […]

Read More…