1.开机自启动后启动服务
写一个CrackDemo.apk,做到开机自启动service,由service在后台默默的进行一系列动作,同时包含一个界面Activity,在开机的时候,这个Activity并不启动,当点击这个Activity的时候,才显示界面
这里面一共有三个类,MainActivity用于显示界面,BootBroadcastReceiver启动ServiceCrack,代码分别如下:
(1)MainActivity就是显示一个界面,这里不给出
(2)BootBroadcastReceiver
public class BootBroadcastReceiver extends BroadcastReceiver{
@override
public void onReceive(Context context,Intent intent){
Intent service = new Intent(context,ServiceCrack.class);
context.startService(service);
Log.d("TAG1","开机自启动服务");
}
}
(3)ServiceCrack
public class ServiceCrack extends Service{
@override
public IBinder onBind(Intent arg0){ //这是Service必须要实现的方法,目前这里面什么都没有做
//只是在onCreate()方法中打印了一个log便于测试
return null;
}
@override
public void onCreate(){
super.onCreate();
Log.d("TAG2","test service");
}
}
(4)最重要的清单文件
在网上看了好几家版本,貌似没有能使用的,要不就是不全,要不就是错误的,针对上面的程序,对应的清单文件如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.watchdata.crackdemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<!--加权限-->
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<!--application中进行配置-->
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<service
android:name = ".ServiceCrack">
</service>
<receiver android:name=".BootBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<activity
android:name = "com.watchdata.crackdemo.MainActivity"
android:icon="@drawable/ic_launcher"
android:label = "@string/app_name">
<intent-filter>
<action android:name = "android.intent.action.MAIN"/>
<category android:name ="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
2.点击app不显示界面
在主界面添加以下主题就可以了
<activity Android:name="com.learns.LocationManager" android:theme="@android:style/Theme.NoDisplay" ></activity>