VirtualApp

摘要:
在onCreate中调用了virtualCore的initialize方法注册了一个VirtualInitializer的callback,用来处理不同进程的初始化逻辑。

在onCreate中调用了virtualCore的initialize方法注册了一个VirtualInitializer的callback,用来处理不同进程的初始化逻辑。

@Override
    public voidonCreate() {
        gApp = this;
        super.onCreate();
        VirtualCore virtualCore =VirtualCore.get();

        /*** virtualCore的initialize方法注册了一个VirtualInitializer的callback,
         * 用来处理不同进程的初始化逻辑(进行四种进程)
         */virtualCore.initialize(newVirtualCore.VirtualInitializer() {

            @Override
            public voidonMainProcess() {
                Once.initialise(VApp.this); //主进程 这是在统计什么???
                newFlurryAgent.Builder()
                        .withLogEnabled(true)
                        .withListener(() ->{
                            //nothing
})
                        .build(VApp.this, "48RJJP7ZCZZBB6KMMWW5");
            }

            @Override
            public void onVirtualProcess() { //客户App进程的回调
                //listener components
                virtualCore.setComponentDelegate(newMyComponentDelegate());
                //fake phone imei,macAddress,BluetoothAddress
                virtualCore.setPhoneInfoDelegate(newMyPhoneInfoDelegate());
                //fake task description's icon and title
                virtualCore.setTaskDescriptionDelegate(newMyTaskDescriptionDelegate());
            }

            @Override
            public voidonServerProcess() {
                virtualCore.setAppRequestListener(new MyAppRequestListener(VApp.this));
                virtualCore.addVisibleOutsidePackage("com.tencent.mobileqq");
                virtualCore.addVisibleOutsidePackage("com.tencent.mobileqqi");
                virtualCore.addVisibleOutsidePackage("com.tencent.minihd.qq");
                virtualCore.addVisibleOutsidePackage("com.tencent.qqlite");
                virtualCore.addVisibleOutsidePackage("com.facebook.katana");
                virtualCore.addVisibleOutsidePackage("com.whatsapp");
                virtualCore.addVisibleOutsidePackage("com.tencent.mm");
                virtualCore.addVisibleOutsidePackage("com.immomo.momo");
            }
        });
    }

免责声明:文章转载自《VirtualApp》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇自动化监控白皮书——WAS监控C#通用的参数设置功能模块(ini文件配置)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

权值初始化

设计好神经网络结构以及loss function 后,训练神经网络的步骤如下: 初始化权值参数 选择一个合适的梯度下降算法(例如:Adam,RMSprop等) 重复下面的迭代过程: 输入的正向传播 计算loss function 的值 反向传播,计算loss function 相对于权值参数的梯度值 根据选择的梯度下降算法,使用梯度值更新每个权值参数...

oracle--DG初始化参数

下列参数为Primary角色相关的初始化参数 DB_NAME 注意保持同一个Data Guard中所有数据库DB_NAME相同 例如:DB_NAME=kingle DB_UNIQUE_NAME 为每一个数据库指定一个唯一的名称,该参数一经指定不会再发生变化,除非DBA主动修改它 例如:DB_UNIQUE_NAME=DavePre LOG_ARC...

【iOS】Swift LAZY 修饰符和 LAZY 方法

延时加载或者说延时初始化是很常用的优化方法,在构建和生成新的对象的时候,内存分配会在运行时耗费不少时间,如果有一些对象的属性和内容非常复杂的话,这个时间更是不可忽略。另外,有些情况下我们并不会立即用到一个对象的所有属性,而默认情况下初始化时,那些在特定环境下不被使用的存储属性,也一样要被初始化和赋值,也是一种浪费。 在其他语言 (包括 Objectiv...

kernel 目录 解析

核心源码的顶层是/usr/src/linux目录,在此目录下你可以看到大量子目录: arch 这个子目录包含了所有体系结构相关的核心代码。它还包含每种支持的体系结构的子目录,如i386。 include  这个目录包括了用来重构核心的大多数include文件。对于每种支持的体系结构分别有一个子目录。此目录中的asm子目录中是对应某种处理器的符号连接,如i...

Go-结构体

Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。 类型别名和自定义类型 自定义类型 在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型,Go语言中可以使用type关键字来定义自定义类型。 自定义类型是定义了一个全新的类型。我们可以基于内置的...

mysql5.7.初始化后,临时密码过期

安装mysql 5.7遇到一个特别纠结的问题,初始化成功之后,使用临时密码提示过期。反复初始化n次,还是临时密码过期。脑袋很大。下面贴出代码 [root@oracle11g data]# mysqld --initialize --user=mysql [root@oracle11g data]# service mysqld start Starting...