花费了好几个小时测试最终搞定了,Mono for android用一个APP启动其他隐藏应用程序。直接看代码:隐藏APP(被启动)要在manifest文件配置如下,去除原本的两个标签,修改成只有一个data<Activity> <activity android:icon="@drawable/icon" android:label="IOCPDroid" android:name="iocpdroid.IOCPActivity" android:exported="true"> <intent-filter> <data android:host="iocpdroid.IOCPActivity" android:scheme="c...
从service调用dialog需要权限<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />示例代码Dialog dialog = new AlertDialog.Builder(ctx).create();
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
dialog.show();注意事项当activity不在前台的时候,部分手机(比如小米2s,系统4.1.1)不支持直接弹出dialog,之后在显示activity之后,才会看到dialog。原文:http://my.osch...
从android一个apk中启动第三方apk应用 我们在开发中,经常遇到遇到在一个apk中要去运行另外一个apk,就像我们windows一样,搞一个快捷方式一样,那怎么实现呢? 问题的核心点在于我们要拿到第三方apk的package名称跟class名称,这两个至关重要!比如笔者做测试用的qq apk,package名称是com.tencent.pad.qq,class名称是com.tencent.pad.qq.login.QQLoginActivity。从一个apk启动到另外一个apk,当然也是通过发送i...
参考: http://blog.csdn.net/lucasey/article/details/61071377Android Studio 升级到2.3版本后 运行项目后,只是安装上了,而APP不能自动打开;看到官方解释:Known issue: Some device manufacturers block apps from automatically launching after being installed on the device. When deploying your app to a physical device using Android Studio 2.3, this restriction breaks the intended behavior of Instant Run an...
开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动:Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName(packageName, className); intent.setComponent(cn);s...
从任意app,启动另外一个app的activity:1. Intent i = new Intent(); ComponentName cn = new ComponentName("com.book.android2", "com.book.android2.AndroidSearch"); i.setComponent(cn); i.setAction("android.intent.action.MAIN"); startActivity(i); //or startActivityForResult(i, RESULT_OK); 我用这种方法时,绝大部分应用可以启动,但是像RootExplorer却无法启动,出现FC对话...
本文章基于apkplug v1.6.7 版本编写,最新方式以官网最新消息为准 一 apkplug框架所需要的库文件(宿主) 可从http://git.oschina.net/plug/apkplugSDK 获取最新库文件
同时可下载最新的apkplugdemo源码 http://git.oschina.net/plug/apkplugDemos libs-- --libndkfoo.so armeabi armeabi-v7a mips x86
--Bundle(版本号).jar 将以上的文件加入宿主应用的libs目录下 二 AndroidManifest.xml 权限...
谈到Activity的启动方式必须要说的是数据结构中的栈。栈是一种只能从一端进入存储数据的线性表,它以先进后出的原则存储数据,先进入的数据压入栈底,后进入的数据在栈顶。需要读取数据的时候就需要从顶部开始读取数据,栈具有记忆功能,对栈的操作不需要指针的约束。在Android中Activity的显示其实就是一个入栈和出栈的过程。当打开一个Activity的时候Activity入栈,当关闭一个Activity的时候Activity出栈,用户操作的Activity位于...
Activity的完整生命周期如下图:Activity的加载模式有四种:standard: 标准模式,默认的加载模式,每次通过这种模式启动目标Acitivity,都创建一个新的实例,并将该Activity添加到当前栈中。singleTop: 与标准模式类似,只有当Activity位于Task顶时,系统不会重新创建目标Activity的示例,而是直接复用已有的Activity实例。singleTask: 如果要启动的Activity不存在,系统创建Activity实例,并将它加入栈顶 如果将启动的Acti...
应用的安装和启动过程:
安装:第一步:java的编译器会把这个.java文件编译成.class文件
第二部:Android的SDK提供了一个dx工具,这个工具把.class文件转义成.dex文件
第三部:打包操作,把.dex文件和资源文件进行打包,打包成一个压缩文件,然后进行签名。最后就打包成为了.apk文件
第四部:调用adb指令:adb install c:/x.apk安装到模拟器
具体过程:.JAVA---->.class--.dx-->.dex--->打包签...
android冷启动优化1. 什么是冷启动冷启动指的是应用第一次启动或者应用被杀死(不在内存中)后又一次启动的情况。
你可能已经发现了,这样的情况下启动时间会稍长一点。由于它会又一次初始化资源(Application等)。app启动时一般会在Application或者所谓的SplashActivity中做初始化工作。假设Application中的工作过多的话。 那么当冷启动的时候。就会出现白屏情况。由于此时SplashActivity还没有被初始化。SplashActivity上的图片还...
main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/btn1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="按Action值1启动目标Activity"/><Buttonandroid:id="@+id/btn2"android:layout_width="wrap_content"android:la...
我们遇到Android系统开机界面(bootanimation)后,系统没法运行起来的问题,系统一直出现 waiting for ...日志似乎在等什么服务启动因此怀疑system server 被block了调试方法如下:1. adb shell mkdir /data/anr/2. adb shell ps | grep system_serversystem 1138 234 908376 39440 ffffffff 40061a54 S
system_server3. adb shell kill -3 11384. adb shell pull /data/anr/trace.txt----- pid 1138 at 2014-01-01 08:40:4...
以前我遇到这类问题,只知道是需要关闭手机助手文件,今天找了找资料,发现这是端口占用问题,解决办法:cmd》》netstat -ano | findstr "5037"之后筛选出列表,只需要查看被占用的端口(pid=0的不用管):
C:\Users\Administrator>netstat -ano | findstr "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 9660
TCP 127.0.0.1:5037 127.0.0.1:56036 ESTABLISHED 9660
T...
直接上代码:// 通过包名获取要跳转的app,创建intent对象Intent intent = getPackageManager().getLaunchIntentForPackage("cn.easier.intelligencesystem");// 这里如果intent为空,就说名没有安装要跳转的应用嘛if (intent != null) {// 这里跟Activity传递参数一样的嘛,不要担心怎么传递参数,还有接收参数也是跟Activity和Activity传参数一样 startActivity(intent);} else {// 没有安装要跳转的app应用,...