• Android 如何调用自写APK和非自写APK


    由于项目需要,调用一个现成的APK,总结之余,顺便把怎么调用自写APK的方法也写上,以做比较

    1.如何调用现成的APK:

    先上调用代码,然后再一一解释:

    1  Intent mIntent = new Intent();
    2         ComponentName comp = new ComponentName(arg1,
    3 arg2);
    4         mIntent.setComponent(comp);
    5         mIntent.setAction("android.intent.action.MAIN");
    6    
    7         startActivity(mIntent);
    8 arg1:package name
    9 arg2:apk name 

    不难发现,其实就是一个普通的启动一个Activity的方法,一般大家的疑问都在,arg1: package name 和arg2: apk name 是怎么得到的。

    具体操作如下:先安装此APK到机器或模拟器上,然后手动启动这个APK,然后同时用LogCat抓Log信息,package name很好理解,需要注意,apk name是全名(加上包名前缀)

    如:

    package name : com.robert.maps,

    apk name : com.robert.maps.MainMapActivity

    总结:此方归结起来就一句话,安装APK以后,手动执行这个apk, 看log中的信息,然后构造一个Intent,使用Intent就可以起来。

    2.如何调用自写APK:

    虽然这个知识点,学过Android 的人都知道,但是本文为了做比较,顺便理下思路,所以还是写上了。

    首先自写APK,必定有其manifest.xml的源码,如:

    <activity
            android:name="com.example.test.TestActivity"
            android:label="@string/app_name" >
     
        <!--<intent-filter>
                 <action android:name="android.intent.action.MAIN" />
     
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter> 
        -->
             <intent-filter >
                  <action android:name="testApp"/>
                  <category android:name="android.intent.category.DEFAULT"/>
             </intent-filter>
    </activity>

    其次,安装此APK(2种方法都需要安装,这就不用多解释了吧),但是系统中找不到这个程序。别急,它确实安装在手机里面了,但是因为他不是main的,所以系统不会把他当做Application的入口程序。而要想打开这 个activity,只有知道它名字的人才可以。跟系统的intent一样使用。它的名字定义为"testApp",所以,这里用这个字符串就可以调用它了:

    Intent intent = new Intent("testApp");
    startActivity(intent);

    总结:更改该APK的manifest.xml文件,将intent-filter下的Action属性由系统的android.intent.action.MAIN更改为自定义的字串,再将intent-filter下的category属性由launcher改为default,然后通过带Action参数的Intent构造方法,来启动这个Activity,也就是这个APK。

  • 相关阅读:
    Python3-shutil模块-高级文件操作
    Python3-sys模块-解释器相关参数与函数
    Python3-os模块-操作系统的各种接口
    Python3-算法-冒泡排序
    Python3-re模块-正则表达式
    Python3-算法-递归
    Python3-设计模式-迭代器模式
    Python3-设计模式-装饰器模式
    PTA 7-28 搜索树判断(镜像二叉搜索树的后序遍历)
    PTA 7-26 Windows消息队列(小顶堆+输入优化)
  • 原文地址:https://www.cnblogs.com/rainey-forrest/p/4981605.html
Copyright © 2020-2023  润新知