安卓后台服务
❶ 安卓前台服务和后台服务的区别
前台程序就是,有图表显示的,后台就是,相关的服务,长按HOME键呼出程序,点任务管理器,里面有启动的程序,点ROM可以清除后台程序,或者在设置中,点应用程序,进去里面显示的也有,运行中的后台。
❷ 如何关闭android 后台服务
有以下几种方法:
1、点击菜单按钮,显示多个后台运行的软版件,选择要关闭的软件;(安卓权触屏机,屏幕下方的按钮通常是:菜单键、主页键、返回键)
2、手机重新启动,会自动关闭运行的后台服务
3、安装一些手机防护软件,选择优化系统
4、点击设置,找到对应的软件,结束进程
❸ 安卓app后台服务器用什么语言开发
如果抄你是要别人来开发,那就随便你。什么语言都可以。如果你是想自己开发,那当然是用java开发好一点。因为你会安卓,安卓基于java开发。
如果你稍微了解服务器开发。你看这篇博客就会很容易搭建一个服务器项目。
http://blog.csdn.net/wr751811032/article/details/50512230
这也是现在的主流框架。
❹ 安卓如何连接后台
代码:
public class Util {
public static final String URL_Path = "http://192.168.3.6/addfun/api/catering/watercard.php";
public String getPost() {
client = new DefaultHttpClient();
HttpPost post = new HttpPost(URL_Path);
try {
HttpResponse response = client.execute(post);
HttpEntity entity = response.getEntity();
return EntityUtils.toString(entity, "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public String sendString() {
try {
URL url = new URL(URL_Path );
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 请求方法
conn.setRequestMethod("POST");
// 设置网络连接超时
conn.setConnectTimeout(3000);
// 可以向服务器输出信息
conn.setDoOutput(true);
// 可以从服务器获取信息
conn.setDoInput(true);
// Post请求不使用缓存
conn.setUseCaches(false);
// post请求,将参数以流单位形式发送给服务器
OutputStream out = conn.getOutputStream();
out.flush();
InputStream in = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
return br.readLine();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
❺ android 怎样启动后台服务
后台服务就是后台运行的意思,只要单击任务栏上代表这程序的按钮,原来后台运行的程序就会到前台来,前台运行的程序就会到后台去了。如下图所示。
Windows 7可以打开几个窗口,每个任务分配一个窗口,各个窗口可以重叠、排开、放大、缩小、移动等,可以方便地在各打开的窗口间切换,各个打开的应用程序共享电脑资源,多任务环境对用户是透明的,每个任务都可以按前台、后台和独占三种方式进行。
多任务并存时,打开一个窗口后,在任务栏的空白处单击鼠标右键,然后在弹出的快捷菜单中可以选择层叠、横向平铺或纵向平铺等。
当Windows 7打开了几个窗口时,实际上只有一个是你可以对它进行操作的窗口,叫做当前活动窗口。在所有打开窗口的最前面,标题栏底色为深色的窗口为当前活动窗口。单击任务栏上的按钮,或按下换档键加制表键,即可以把这个窗口切换为当前活动窗口。
任何已经打开,不在前台运行的窗口,在后台仍然是活动的,占用内存和中央处理器等系统资源,所以,从这个意义上来说,长时间不用的窗口要及时关闭,方法是单击应用程序窗口标题栏右上角的关闭按钮。
;一个应用程序,无论是否最小化,在任务栏上都会以按钮的形式显示出来,当前活动窗口的应用程序的按钮呈凹陷形状,其余呈隆起形状。因此,判断一个窗口是否关闭,只要看其是否还在任务栏中即可。
❻ android平台的app、手机客户端和后台服务器怎么进行数据交互
首先不要管安卓端还是苹果端,现在一般都是响应式的app,你放到安卓或者苹果或者pc或者平板都是没有问题的。一般采用的是http接口通讯,或者socket连接。具体你要去查资料找Demo了。而且现在主流是采用html5开发或者混合开发了。所以最好是服务器提供appAPI接口,通过http访问服务器,获取数据,数据一般是json,或者xml,拿到后解析数据就可以了,然后再用UI框架或者其他框架或者自定义的UI封装下格式很漂亮了,至于cookie和session等,看你的习惯,网络验证和签名那些也自己看习惯,如果涉及到大数据,还需要引入第三方框架的,直接引入就可以了,不过推荐自己写,防止侵权。都是很通用的。
❼ 有做安卓后台服务端的哥们吗问你们个问题
刚好本科毕业设计是做一个Android即时聊天应用-EasyIM。感谢题主的这个问题,让我有动力整理下毕业设计的代码。
因为实习占用了大四的大部分时间,导致EasyIM只完成了部分功能便参与答辩。虽然最终侥幸过了毕设答辩,但效果与自己期望的相去甚远。
开始工作后,有比较多的空闲时间,我打算慢慢完善该项目,并将近期所学习的一些新技术应用到该项目中。
该项目分为两部分:
EasyIM-Server : EasyIM服务端
EasyIM-Android : EasyIM Android端
用户基础功能(登录/注册)
好友功能(添加/删除好友)
点对点的消息发送功能(文本消息/图文消息)
离线消息功能(获取离线时收到的消息,消息的接收/已读回执)
XMPP是PC时代的产物,其底层通讯的数据格式的XML,数据冗余性太高(约70%),比较耗流量,并且在复杂的移动网络环境下会遇到各种各样的问题。不过胜在拥有比较多的开发资料以及Openfire(底层是基于XMPP)这样一个成熟的即时聊天框架。
MQTT协议较之XMPP更为轻量级,其连接的建立与传输的开销都非常小,非常精简,非常适合大量节点在弱网络环境的场景,发布/订阅的模式也比较易于扩展。
fusesource/mqtt-client
dobermai/android-mqtt-push
mqttjs/MQTT.js
EasyIM目前实现了:
实现思路
我们先来聊聊具体实现的思路
基础协议
因为移动设备多变的网络环境,以及即时通讯应用实时在线的需求,简单地使用Scoket建立客户端与服务端,或者客户端与客户端的通信是行不通的。
当前普遍的做法是在服务端与客户端之间建立一个长连接,客户端A将消息发送给服务端,服务端再将消息转发给客户端B。
而如何建立一个长连接实现客户端与服务端的通信,以及保证连接的质量与低耗电,低耗流量是一个难题。这里就要扯上XMPP,MQTT这两个协议。
很明显, 我们需要选择MQTT作为我们这个即时通信应用的基础协议,关于MQTT客户端与服务端的开源实现有:
比较遗憾的是,因为毕业设计是在太赶,我并没有自己实现(实现难度也挺大的),而是使用了第三方的推送服务。
服务端实现
整个服务端实现比较简单,因为整个项目采用重客户端-轻服务端的开发策略,所以服务端的逻辑非常少,总共就4张表,12个接口。使用Restful风格的API。
用户模块,好友模块比较简单,无外就是增删查改。
值得一提的是消息模块,我将整个系统的各种功能事件,抽象成为"消息事件“, 比如,添加好友是一条消息,确认添加好友也是一条消息, 发送文本是一条文本消息,发送图文是图文消息。服务端只负责将该消息转发给指定客户端,而不关注消息是什么类型。而客户端接收到消息并根据消息类型进行其他逻辑操作。
❽ 安卓后台自动运行软件
您好,很高兴为您解答疑问。
关于这个问题我查询了一些资料,希望对您有所帮助。
不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要。特别是使用自动关进程的软件。
到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。所以,论坛上有个更改内存阀值的程序可以有一定改善。但改动也可能带来一些问题,取决于值的设定。
那么,进程管理软件有无必要呢?有的。就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显著的提高运行速度。但一些小程序,完全可交由系统自己管理。
谈到这里,可能有的朋友会问,如果不关程序是不是会更耗电。我就说说android后台的原理,你就明白了。android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。所以为什么有的程序切出去重进会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service。至于广播什么的我就不涉及了。所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个android的优点呢。
还有一个,为什么android一个应用看起来那么耗内存。大家知道,android上的应用是java,当然需要虚拟机,而android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。
以上这些设计确保了android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现。大家可能是被windows毒害得太深了,总想保留更多的内存,但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,很没必要。大家不妨按我说的习惯来用用这个系统。
若有问题尽请追问哦
❾ 如何让android的service一直在后台运行
Service组件在android开发中经常遇到,其经常作为后台服务,需要始终保持运行,负责处理一些必要的任务。而一些安全软件,会有结束进程的功能,如果不做Service的保持,就会被其杀掉。
如何保持Service的运行,其核心就是利用ANDROID的系统广播,这一不会被其他软件影响的常驻程序触发自己的程序检查Service的运行状态,如果被杀掉,就再起来。
利用的系统广播是Intent.ACTION_TIME_TICK,这个广播每分钟发送一次,可以每分钟检查一次Service的运行状态,如果已经被结束了,就重新启动Service。
下边就是具体的代码和注意事项了:
1、 Intent.ACTION_TIME_TICK的使用
开发人员知道广播的注册有静态注册和动态注册,但此系统广播只能通过动态注册的方式使用。即不能通过在manifest.xml里注册的方式接收到这个广播,只能在代码里通过registerReceiver()方法注册。
在ThisApp extends Application 里注册广播:
IntentFilter filter = newIntentFilter(Intent.ACTION_TIME_TICK);
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);
在广播接收器MyBroadcastReceiver extends BroadcastReceiver的onReceive里
if (intent.getAction().equals(Intent.ACTION_TIME_TICK)) { //检查Service状态 }
2、Service的检查与启动
boolean isServiceRunning = false;
ActivityManager manager = (ActivityManager)ThisApp.getContext().getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service :manager.getRunningServices(Integer.MAX_VALUE))
{
if("so.xxxx.WidgetUpdateService".equals(service.service.getClassName()))
//Service的类名
{ isServiceRunning = true; }
}
if (!isServiceRunning) {
Intent i = new Intent(context, WidgetUpdateService.class);
context.startService(i);
}
关于Service的开机启动。
实现和上边的类似,也是通过监控开机的系统广播来启动Service。但其实做了上边的检查也就不会做开机启动了,因为过一两分钟就会通过上边的程序启动Service了。代码如下:
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED))
{
Intent i = new Intent(context, LogService.class);
context.startService(i);
}
❿ 安卓用过的软件在后台有服务项,请问如何让安卓像Windows一样当程序切换到后台时服务就冻结了,只
后台运行,就是你在运行某个软件的时候,来了短信或者电话,再或者你想去干别版的事权了,而直接切换到其他程序,那么之前运行的程序这个时候并没有关闭,而在后台运行。当你想让之前的程序再次出现到“前台”的时候,只需要去点击该程序的快捷方式就可以了,点进去你会发现程序还停留在你退出时的界面。 具体操作的话,先运行某个游戏,开始了以后点HOME键,这个时候会显示桌面;然后你再点该游戏的快捷方式,就可以继续玩游戏了。这就是你说的后台和前台的切换。