2011.8.19----(android中桌面widget的后台管理服务AppWidgetService初探)

本文探讨了Android中桌面Widget的后台管理服务AppWidgetService的初始化过程,从SystemServer的启动到AppWidgetService的创建,再到系统准备就绪后的广播发送。AppWidgetService通过PackageManager加载符合条件的Widget信息,并使用AlarmManager定时更新。
摘要由CSDN通过智能技术生成

最近在看一些widget的东西,发现很是郁闷,只看sdk,都一些介绍性的东西,怎么配置,建什么provider,providerinfo,remoteviews,之类,越看感觉越不爽,没有掌控权,所以决定看看框架是怎么组织widget的。废话少说,从源码看起。

 

和大多数后台服务一样,AppWidgetService也是在SystemServer中初始化的,代码片段如下:

public class SystemServer
{
    /**
     * This method is called from Zygote to initialize the system. This will cause the native
     * services (SurfaceFlinger, AudioFlinger, etc..) to be started. After that it will call back
     * up into init2() to start the Android services.
     */
    native public static void init1(String[] args);

    public static void main(String[] args) {
        if (SamplingProfilerIntegration.isEnabled()) {
            SamplingProfilerIntegration.start();
            timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    SamplingProfilerIntegration.writeSnapshot("system_server");
                }
            }, SNAPSHOT_INTERVAL, SNAPSHOT_INTERVAL);
        }

        // The system server has to run all of the time, so it needs to be
        // as efficient as possible with its memory usage.
        VMRuntime.getRuntime().setTargetHeapUtilization(0.8f);

        System.loadLibrary("android_servers");
        init1(args);
    }

    public static final void init2() {
        Log.i(TAG, "Entered the Android system server!");
        Thread thr = new ServerThread();
        thr.setName("android.server.ServerThread"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值