❶ android开发之设置开机自动启动的几种方法
程序源代码如下:
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++)/*以下为三重循环*/
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
}
❷ android 6.0 怎么自启
Android系统通过应用程序自行在系统中登记注册事件(即Intent)来响应系统产生的各类消息。
例如Android实现系统开机自启动程需要在Manifest中加入如下Intent-filter及权限Uses-permission即可。
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
(修改时候主要是去掉上面该行即可)
<category android:name="android.intent.category.HOME" />
</intent-filter>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
(修改时候主要是去掉上面该行即可) Android系统为应用程序管理功能提供了大量的API,可以通过API控制Intent和permission,其中
上述配置表示应用程序会响应系统产生的android.intent.action.BOOT_COMPLETED(系统启动完成)信号,以此来实现应用程序自启动。当然知道上述原理后,我们就可以随心所欲的控制程序开机自启动了。具体思路如下:
一、手工方法
基于上述原理,我们可以通过对系统中已安装的程序去除其Manifest的上述配置片段来控制应用程序的对系统的响应,当然没源码可修改编译的情况下只能实现屏蔽其对有些信号的响应,例如屏蔽该程序不再开机自启动。手工方法就是利用有关工具直接在解压其APK包后,修改其Manifest的上述配置行后再打包成APK,最后安装到系统中就实现了屏蔽其自启动功能。具体相关的工具软件主要有APKTOOL。(请自己放狗去搜索下载)
二、编程实现
当然手工方法需要借助APKTOOL等工具,步骤比较法繁琐,我们可以通过自己开发来实现该功能。幸好
1、PackageManager
本类API是对所有基于加载信息的数据结构的封装,包括以下功能:
·安装,卸载应用
·查询permission相关信息
·查询Application相关信息(application,activity,receiver,service,provider及相应属性等)
·查询已安装应用
·增加,删除permission
·清除用户数据、缓存,代码段等
非查询相关的API需要特定的权限,具体的API请参考SDK文档。
2、ActivityManager相关
本类API是对运行时管理功能和运行时数据结构的封装,包括以下功能
·激活/去激活activity
·注册/取消注册动态接受intent
·发送/取消发送intent
·activity生命周期管理(暂停,恢复,停止,销毁等)
·activity task管理(前台->后台,后台->前台,最近task查询,运行时task查询)
·激活/去激活service
·激活/去激活provider等
task管理相关API需要特定的权限,具体API可参考SDK文档。
❸ 关于android 开发的app 加入自启动管理
写一个类继续BroadcastReceiver,重写onReceive,在onReceive里开启一个服务Intent s=new Intent(ctx,MyService.class)然后在服务里写你的业务逻辑。再在清单文件的application标签中添加 < uses-permission android:name=
"android.permission.RECEIVE_BOOT_COMPLETED"/>
< uses-permission android:name=
"android.permission.RECEIVE_BOOT_COMPLETED"/> 就可以测试了
❹ android 怎么自启动应用
安装自启动:
要做这个功能有一个前提,那就是用户的机器上已经装过相应应用,也就是说只有升级APK的时候才可以这么干,因为要执行的功能需要程序的配合。
具体步骤如下:
首先要知道程序已经安装完成,所以需要在程序中注册一个广播监听(必须是静态的,你懂的)apk安装完成的action:"android.intent.action.PACKAGE_ADDED",在这个广播的onReceive方法中监听action,并通过intent.getDataString()方法判断安装程序的包名是否属于自己的包名,如果是做下一步操作;
通过Intent显式或者隐式的启动你自己的程序。
建议:
最好不要这样干,你要考虑一下用户的感受,特别是那种自动安装不需要点确认的时候,正在玩游戏、看视频、看小说、用微信你自动打开一个应用
开机自启动
android实现开机自启动可能是移动操作系统中最简单的了,只需要监听一个开机启动的Broadcast(广播)即可。首先写一个Receiver(即广播监听器),继承BroadcastReceiver。
如下所示:
public class BootReceiver extends BroadcastReceiver {
private PendingIntent mAlarmSender;
@Override
public void onReceive(Context context, Intent intent) {
// 在这里干你想干的事(启动一个Service,Activity等),本例是启动一个定时调度程序,每30分钟启动一个Service去更新数据
mAlarmSender = PendingIntent.getService(context, 0, new Intent(context,
RefreshDataService.class), 0);
long firstTime = SystemClock.elapsedRealtime();
AlarmManager am = (AlarmManager) context
.getSystemService(Activity.ALARM_SERVICE);
am.cancel(mAlarmSender);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
30 * 60 * 1000, mAlarmSender);
}
}
接下来,只需要在应用程序配置文件AndroidManifest.xml中注册这个Receiver来监听系统启动事件即可
如下所示:
<receiver android:name=".service.BootReceiver">
<intent-filter>
<!-- 系统启动完成后会调用-->
<action android:name="android.intent.action.BOOT_COMPLETED">
</action>
</intent-filter>
</receiver>
❺ 如何让应用随系统启动 android
如果您是一位Java Android开发人员,那么实现一个随系统自启动的应用对您来说应该非常Easy,但对于一位使用Adobe Flash技术开发应用,然后用AIR打包机制制作.APK的开发者来说,实现这个功能却不是很轻松的。Flash的优势就是跨平台,一位Flash开发者可以使用自身积累的知识体系,以最小的学习成本进入Android开发的世界。AIR在打包的时候对我们隐藏了很多细节,这样一方面可以减少我们的学习阻力,一方面却也因为这个不透明的过程造成一些困扰(后面详述)。如果我们要实现一个功能,AIR核心API却没有提供实现,就成了非常麻烦的事情,不过现在好在AIR已经提供了一种扩展自己功能的机制,就是ANE。对于Android开发来说,我们可以使用Java代码来完成AIR本身不提供的功能。
关于ANE的基本知识,您可以参阅这里(中文)
很棒的ANE for Android实例教程http://t.cn/SbsI5j跟这个过一遍就明白ANE的原理,创建过程和使用方式了。
下面我们来看看如何让一个AIR打包的APK实现随系统自己启动的功能(当然也要借助ANE了)。
APK的AndroidManifest.xml分析
在动手之前,您最好先把AIR打包产生的APK文件做一下分析,了解它的特性,后面就可以少走一些弯路。将.apk文件直接改扩展名为.zip,解压即可看到它的结构。注意AndroidManifest.xml,这是Android应用非常核心的一个配置文件。这个文件是AIR打包自动产生的,但是和AIR应用本身的XML配置文件也是有管理的(AIR应用的XML配置中的android节点部分会被合并到AndroidManifest.xml,这样方便我们做一些权限设定等等)。
解压得到的AndroidManifest.xml是个二进制的XML文档,无法用文本工具查看,您可以先使用AXMLPrinter2.jar将它转换为普通文本格式即可阅读。
这个文件中我们要注意几个细节:
1. manifest节点的package属性不能由我们设定,这是AIR打包的时候自动设定的,规则是“air.应用ID”,比如我们的应用ID是TestAppANEs,那么这里的设置就是package=”air.TestAppANEs”
2. 在application部分会自动产生一个activity,名称是.AppEntry。activity相当于Android应用的视图,AIR会自动产生一个视图,用来承载我们的Flash内容。
了解这些细节之后,我们就可以继续实施ANE部分的开发了。
ANE实现
创建ANE项目的过程就不细述了,您可以参阅Adobe的文档。这里只说和随系统启动相关的部分。您首先要创建一个包,命名和manifest节点的package属性保持一致,比如这里应该是air.TestAppANEs。这个地方要非常注意,包名必须遵循这样的结构,否则运行时会找不到类。
然后在这个包中创建一个Java类:BootBroadCastReceiver,继承BroadcastReceiver,完整代码如下:
然后将Java项目编译为JAR包,然后建立一个ActionScript库项目,最终和JAR包打包为一个ANE文件(略过N多细节,请参阅Adobe文档)。
这里再补充两个细节问题,首先是ADT打包,ANE打包的参数确实很容易弄错,估计第一次打包的同学很难能一次性通过,最后一个参数的点前面还有一个空格,提醒您千万注意了 -platform Android-ARM -C .Android-ARM .
其次是您应该给extension.xml设置一个 ,并使用ActionScript实现一个模拟功能实施,并打包到ANE中,这样方便您在PC测试,否则您会得到不支持调试的提示。
和主项目的整合
ANE制作完毕后,您可以用Flash Builder,在您的主项目上点击右键,属性,库构建路径,在ANE面板上,加入刚才制作的ANE文件(Flash Builder会自动在AIR应用的XML配置文件中加入这个ANE的ID,确保这个ID必须有)。然后在发布的时候,ANE的部分还有一个对勾(确定是否包含),一定记得点上,不然就会找不到类。
先别急着打包,我们还需要修改一下配置文件,打开AIR应用的XML配置文件,找到android部分,加入.BootBroadCastReceiver的定义,完整结构如下:
注意.BootBroadCastReceiver这个定义很关键,以.开头才能实现随系统启动的功能。
然后…就没有然后了。您可以测试您的应用,安装后让手机重启,不出意外的话,您可以看到自己的应用在系统启动完毕后,就会自己启动并显示主界面。
您也可以不显示主界面,而是注册一个Service,实现后台的通知和提醒。
❻ android如何实现开机自动启动Service或app
import
android.content.BroadcastReceiver;
import
android.content.Context;
import
android.content.Intent;
import
android.util.Log;
public
class
BootBroadcastReceiver
extends
BroadcastReceiver
{
//重写onReceive方法@Overridepublic
void
onReceive(Context
context,
Intent
intent)
{
//后边的XXX.class就是要启动的服务
Intent
service
=
new
Intent(context,XXXclass);
context.startService(service);
Log.v("TAG",
"开机自动服务自动启动.....");
//启动应用,参数为需要自动启动的应用的包名
❼ 如何在Android上开发属于自己的定制化启动器
从最基本的概念角度来讲,启动器其实应该是一款能够实现以下功能的应用程序:
它代表着一台设备的主屏幕。
它能够列出并启动已经安装在该设备当中的应用程序。
换句话来说,它就是那款用户按下home按钮后所显示的应用程序。除非大家已经安装了定制化启动器,否则我们目前正在使用的应该都是Android系统自带的默认启动方案。不少设备制造商都会在产品中默认使用由其定制的启动器,从而确保我们获得与厂商预期相符的外观效果与使用感受,例如三星TouchWiz以及HTC
Sense。
在今天的教程中,我们将利用基本用户界面创建出一款简单的启动器,它将由两部分屏幕构成:
在主屏幕中显示的是该设备的墙纸图案。
另一屏幕中显示的是已经安装在设备当中的应用程序图标及其它细节信息。
1.要求
大家需要在自己的开发设备上预先安装并配置好以下项目:
Android SDK以及平台工具
Eclipse IDE 3.7.2或者更高版本,同时具备ADT插件
运行有Android 2.2或者更高版本的模拟器或者Android设备
大家可以点击此处通过Android开发者门户下载对应SDK及平台工具。
2.项目设置
首先我们需要启动Eclipse并创建一个新的Android应用程序项目。我为这个应用取了个非常直白的名称——SimpleLauncher,当然大家也可以自由选择自己想要的名称。请确保软件包名称没有与其它项目出现重复。我们的启动器所能支持的最低SDK版本为“冻酸奶”,而主要的面向版本则为“果冻豆”。
由于我们不打算创建Activity,因此取消“Create Activity”勾选项,然后点击“Finish”以继续。
3.项目清单
接下来我们需要通过添加两个activity对AndroidManifest.xml文件进行修改。第一个Activity用于显示主屏幕,我们如下所示将其命名为HomeActivity。
<activity android:name="ah.hathi.simplelauncher.HomeActivity" android:label="Simple Launcher Home" android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen" android:launchMode="singleTask" android:stateNotNeeded="true" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
通过将android.intent.category.HOME与android.intent.category.DEFAULT两个类添加至intent-filter组当中,相关Activity得以拥有与启动器概念相符的运行方式。当大家按下设备上的home按钮时,其还将作为选项方案显示出来。
我们还需要将launchMode设置到singleTask当中,从而确保无论何时都只有单一Activity实例由系统负责运行。要显示用户的墙纸图案,大家必须将主题设置为Theme.Wallpaper.NoTitleBar.FullScreen。
我们需要添加的第二个Activity负责显示已经安装在用户设备中的应用程序条目。它还有另一项任务,即启动这些应用程序。我们不需要对该Activity进行任何特殊配置,将其命名为AppsListActivity即可。
<activity android:name="ah.hathi.simplelauncher.AppsListActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > </activity>
4.Activity布局
下面在项目的res/layout文件夹中为HomeActivity类创建一个XML文件,并将其命名为activity_home.xml。该布局拥有一个单独的Button用以响应点触事件。点触该按钮能够让用户由主屏幕切换至应用程序列表。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".HomeActivity" > <Button android:id="@+id/apps_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="10dp" android:layout_marginTop="10dp" android:text="Show Apps" android:onClick="showApps" /> </RelativeLayout>
接下来,在项目的res/layout文件夹中为AppsListActivity类创建一个XML文件并将其命名为activity_apps_list.xml。该布局当中包含一个占据整个屏幕的ListView。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:id="@+id/apps_list" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView> </LinearLayout>
最后,在同样的位置创建第三个XML文件并将其命名为list_item.xml。该文件用于定义ListView当中各个条目的布局方案。列表视图中的每个条目都代表着已经安装在用户设备上的一款应用程序。它能够显示该应用程序的图标、标签以及软件包名称。我们可以利用ImageView实例来显示该应用的图标,并通过TextView实例显示标签与软件包名称。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" > <ImageView android:id="@+id/item_app_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" /> <TextView android:id="@+id/item_app_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/item_app_icon" android:paddingLeft="10dp" /> <TextView android:id="@+id/item_app_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/item_app_label" android:layout_toRightOf="@+id/item_app_icon" android:paddingLeft="10dp" /> </RelativeLayout>
5.创建Acitivity类
HomeActivity
应用程序的布局方案创建完成之后,现在要做的是创建两个Activity类。当创建这两个类时,请确保每个类的名称都与我们之前在项目清单文件中所指定的内容相匹配。
创建一个名为HomeActivity的新类,然后将android.app.Activity设置为其超类。
package ah.hathi.simplelauncher; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class HomeActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); } public void showApps(View v){ Intent i = new Intent(this, AppsListActivity.class); startActivity(i); } }
在该类的onCreate方法中,我们调用setContentView并将其传递至之前已经创建完成的布局当中。大家可能还记得,我们曾为activity_home布局添加过一个按钮,用于触发名为showApps的方法。现在我们要做的是将该方法引入HomeActivity类当中。整个添加过程非常简单,各位需要做的只是为AppsListActivity类创建一个Intent并付诸运行。
❽ android怎么实现开机自动启动Service或app
Android手机在启动的过程中会触发一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED。
在这里我们可以通过构建一个广播接收者来接收这个这个action
(1).
public class TextBroadcastReceiver extends BroadcastReceiver {
//重写onReceive方法
@Override
public void onReceive(Context context, Intent intent) {
//后边的XXX.class就是要启动的服务
Intent service = new Intent(context,XXXclass);
context.startService(service);
Log.v("TAG", "开机自动服务自动启动.....");
//启动应用,参数为需要自动启动的应用的包名
Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);
context.startActivity(intent );
}
}
(2):配置xml文件,在receiver接收这种添加intent-filter配置
<receiver android:name="TextBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
(3):添加权限 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />