在本文中,我们将为您详细介绍Windows10的Android应用程序支持:这是您需要知道的的相关知识,并且为您解答关于windows10安卓应用的疑问,此外,我们还会提供一些关于android-st
在本文中,我们将为您详细介绍Windows10的Android应用程序支持:这是您需要知道的的相关知识,并且为您解答关于windows10 安卓应用的疑问,此外,我们还会提供一些关于android-studio – 你能通过Android工作室将Android应用程序作为ARC应用程序启动吗?、Android应用内购买:您需要在定位Android 6时检查com.android.vending.BILLING权限?、Android:哪个更好,在Mac或Windows PC上开发Android应用程序?、ApplicationInfo-Android动态获取包名-Android获取所有的应用程序信息-Android获取应用程序的占用空间大小-Android应用程序管理系列(三)的有用信息。
本文目录一览:- Windows10的Android应用程序支持:这是您需要知道的(windows10 安卓应用)
- android-studio – 你能通过Android工作室将Android应用程序作为ARC应用程序启动吗?
- Android应用内购买:您需要在定位Android 6时检查com.android.vending.BILLING权限?
- Android:哪个更好,在Mac或Windows PC上开发Android应用程序?
- ApplicationInfo-Android动态获取包名-Android获取所有的应用程序信息-Android获取应用程序的占用空间大小-Android应用程序管理系列(三)
Windows10的Android应用程序支持:这是您需要知道的(windows10 安卓应用)
微软的新计划代号为Latte,将允许用户在Windows 10 PC上运行他们喜欢的Android应用程序。如果获得高层领导的批准,该项目将允许开发人员仅使用打包对话工具即可将其Android应用程序带入Windows 10商店。
问题是转换后的应用程序必须遵循Windows或Microsoft API,因为Google服务无法正常工作。
到目前为止,Google并未以任何方式参与该项目,并且Google自己的Android应用程序也不会进入Windows应用商店。但是,据信谷歌正在为Windows 10开发一个新的UWP YouTube应用程序,它不会成为Project Latte的一部分。
这个想法类似于亚马逊在Kindle系列上实施的想法。鉴于Windows 10上将不提供Google Play服务,因此这将要求开发人员为其Android应用维护单独的API。
微软增加Windows应用商店中应用程序数量的第一个解决方案是一项称为“ Project Astoria”的技术。该项目使Android应用程序可以在Windows 10 Mobile上本地运行,并且其中一些实验性应用程序是通过第三方商店发布的,但该技术还远非完美。
借助Windows 10移动版的Project Astoria,Microsoft自动将Google API转换为其自己的API。尚不清楚微软是否计划再次走同样的路,并为开发人员做所有事情,但是如果情况真是如此,我们不会感到惊讶。
在一种假定的情况下,Project Latte可能是Microsoft自Windows Phones诞生以来就经历的Windows应用商店“应用差距”问题的灵丹妙药。
微软不再投资于Windows 10移动版,但为了解决Windows 10在S模式,Windows 10X和类似平台上的成功问题,必须解决“应用差距”。
硬件要求
Project Latte不会局限于任何特定平台,这意味着您将能够在Intel,AMD甚至ARM硬件上运行Android应用程序。
这可能会给陷入困境的ARM平台上的Windows 10带来提振。
用户体验
最大的问题是“经验”,毫无疑问,这将是事与愿违的最大潜力。Windows 10针对所有应用程序开发框架和过去的用户体验精心构建了一套自己的设计准则,API和硬件要求。
转换后的Android应用仍将带有围绕Google的Material Design设计的针对移动设备优化的界面。
性能将比传统的模拟器好,但是除非开发人员愿意优化桌面界面,否则某些应用程序的用户体验将是灾难性的。
android-studio – 你能通过Android工作室将Android应用程序作为ARC应用程序启动吗?
在开发过程中手动执行此操作可能非常麻烦,尤其是在发布时,您必须对同一应用程序的~15种不同风格执行相同的操作.是否有任何工作可以解决这个问题,如gradle扩展或其他东西.
解决方法
话虽这么说,因为Chrome扩展(CRX)有一个开放的规范,并且由于CRX的内容(作为ZIP文件)很容易检查,反向工程ARC Welder做什么和创建Gradle插件或其他东西不会对于那些痒痒的人来说,这是困难的.
当我检查它时,明显的可变位是icon.png(启动器图标的96×96像素版本),APK本身在vendor / chromium / crx /中,以及manifest.json文件的arc_Metadata部分.后者是您的ARC焊接设置的位置,如外形和方向.
当然,任何自制程序都需要跟踪ARC Welder的更改,以确保它能够生成有效的ARC文件.
Android应用内购买:您需要在定位Android 6时检查com.android.vending.BILLING权限?
<uses-permission android:name="com.android.vending.BILLING" />
从Android 6开始,如果用户授予不属于“normal”权限类别的权限,则应用程序在运行时为expected to check.请注意,在API级别23,com.android.vending.BILLING不会列在此类别的任何地方.所以…
>如果不正常,这是否意味着危险?
>在使用IAB之前,是否需要检查许可?
>如果我这样做,怎么样?我找不到与新的Android 6权限模型集成的IAB的任何示例.例如,根据Manifest.permission
的计费似乎没有任何权限.
解决方法
它由包com.android.vending(a.k.a. Google Play商店)声明.你可以在他的AndroidManifest.xml中找到它:
<permission android:name="com.android.vending.BILLING" android:description="@string/perm_billing_desc" android:label="@string/perm_billing_label" android:permissionGroup="android.permission-group.NETWORK" android:protectionLevel="normal"/>
您不需要在运行时检查权限,因为只对系统权限是必需的.
您可以在这里找到有关申请声明的更多信息:
http://developer.android.com/guide/topics/manifest/permission-element.html
Android:哪个更好,在Mac或Windows PC上开发Android应用程序?
解决方法
另外,在PC上模拟Mac OS是非常努力的,并且与Apple相当,但您可以在Mac上本机运行Windows操作系统.
ApplicationInfo-Android动态获取包名-Android获取所有的应用程序信息-Android获取应用程序的占用空间大小-Android应用程序管理系列(三)
Android ApplicationInfo 应用程序信息
1、简述
1 ApplicationInfo是android.content.pm包下的一个实体类,用于封装应用的信息,flags是其中的一个成员变量public int flags = 0;用于保存应用的标志信息。
2 ApplicationInfo 通过它可以得到一个应用基本信息。
这些信息是从AndroidManifest.xml的< application >标签获取的
3 ApplicationInfo对象里保存的信息都是<application>标签里的属性值
4 ApplicationInfo与ResolveInfo比较:前者能够得到Icon、Label、meta-data、description。后者只能得到Icon、Label
2、获取ApplicationInfo
2.1 、获取手机上安装所有程序对应的 ApplicationInfo
/**
* 获取手机上安装的所有的程序对应的 ApplicationInfo
* 它是通过解析AndroidManifest.xml的< application>标签中得到的,所以它能得到所有的app
*
* 获取手机上的所有的安装的应用程序信息
* 参数为 标识 一般为 PackageManager.GET_UNINSTALLED_PACKAGES
*/
List<ApplicationInfo> list = packageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
2.2 、获取指定包名对应的 ApplicationInfo
/**
* 获取指定应用程序 ApplicationInfo
* 参数一对应应用程序的包名
* 参数二 应用程序对应的标识 通常为 0
*/
ApplicationInfo applicationInfo = packageManager.getApplicationInfo("com.androidlongs.contactsapplication", 0);
3、通过ApplicationInfo来获取应用程序的 基本信息
3.1 、获取应用程序对应的包名、应用名称
//获取应用图标
Drawable drawable = applicationInfo.loadIcon(packageManager);
//获取应用程序的 包名
String appPackageName = applicationInfo.packageName;
//获取应用名
//参数 packageManager 是应用管理者对象
String appName =applicationInfo.loadLabel(packageManager).toString();
3.2 、获取应用程序对应数据的目录以及占用的空间大小
//获取应用存放数据目录
String dir = applicationInfo.sourceDir;
Log.d("app ","应用存放数据目录 " +dir);
//获取应用数据大小
ong length = new File(dir).length();
//转换为 M
float size = length*1f/1024/1024;
Log.d("app ","应用数据大小 " +length+"\t"+size);
3.3 、判断是否安装在外置储存空间存
//判断是否安装在外存
int flags = applicationInfo.flags;
if((flags&ApplicationInfo.FLAG_EXTERNAL_STORAGE)==ApplicationInfo.FLAG_EXTERNAL_STORAGE){
Log.d("app "," 安装在 外置存储空间 ");
}else {
Log.d("app "," 安装在 内置存储空间 ");
}
3.4 、判断应用程序是否是系统应用
//判断是否是系统应用
if((flags&ApplicationInfo.FLAG_SYSTEM)==ApplicationInfo.FLAG_SYSTEM){
Log.d("app "," 是系统应用 ");
}else{
Log.d("app "," 不是系统应用 ");
}
3.5 、manageSpaceActivityName
/**
* 从”android:manageSpaceActivity“属性得到
* 用于指定一个Activity来管理数据,
* 它最终会出现在设置->应用程序管理中,
* 默认为按钮为”清除数据”,指定此属性后,该按钮可点击跳转到该Activity, 让用户选择性清除哪些数据。若不设置则为null.
*/
String activityName = applicationInfo.manageSpaceActivityName;
Log.i("applicationInfo", "activityName: " + activityName);
3.6 、获取应用程序运行的进程
/**
* 从”android:process“属性得到,注明应用运行的进程名。或不设置则默认为应用包名。
*/
String processName = applicationInfo.processName;
Log.i("applicationInfo", "processName: " + processName);
3.7 、其他配置信息简述
// 配置文件中的android:backupAgent属性值,用于备份
String backupAgentName = applicationInfo.backupAgentName;
Log.i("applicationInfo", "backupAgentName: " + backupAgentName);
// 获取继承Application类的对象,维护全局的Application状态
//但一般都不用继承的方式,可以通过Context.getApplicationContext()方法得到
String className = applicationInfo.className;
Log.i("applicationInfo", "className: " + className);
/**
* 可选项,访问当前应用所有组件需要声明的权限,从”android:permission“属性得到。
*/
String permisson = applicationInfo.permission;
Log.i("applicationInfo", "permisson: " + permisson);
// 创建对象时,传入的是GET_SHARED_LIBRARY_FILES该属性才有值
String[] files = applicationInfo.sharedLibraryFiles;
Log.i("applicationInfo", "files: " + files);
// 存放数据的路径 应用数据目录。
String dataPath = applicationInfo.dataDir;
Log.i("applicationInfo", "dataPath: " + dataPath);
// 本地路径 JNI本地库存放路径。
String nativePath = applicationInfo.nativeLibraryDir;
Log.i("applicationInfo", "nativePath:" + nativePath);
// 公共资源路径
String punlicSourcePath = applicationInfo.publicSourceDir;
Log.i("applicationInfo", "punlicSourcePath: " + punlicSourcePath);
// 资源路径 应用APK的全路径
String sourcePath = applicationInfo.sourceDir;
Log.i("applicationInfo", "sourcePath: " + sourcePath);
/**
* 当前应用所有Activity的默认task密切性。
* 可以参考ActivityInfo的taskAffinity,从”android:taskAffinity“属性得到。
* 具体taskAffinity是怎么影响到Activity在task的启动, 后面会在Activity启动模式中细讲
*/
String taskAffinity = applicationInfo.taskAffinity;
Log.i("applicationInfo", "taskAffinity: " + taskAffinity);
// 如果是false,代表application里的所有组件都禁用
boolean enable = applicationInfo.enabled;
Log.i("applicationInfo", "enable: " + enable);
// 表述资源文件的标识
int descriRes = applicationInfo.descriptionRes;
Log.i("applicationInfo", "descriRes: " + descriRes);
int flag = applicationInfo.flags;
Log.i("applicationInfo", "flag: " + flag);
// 指定smallest screen width的值,超过这个值,就要开启屏幕兼容
int compatibleWidth = applicationInfo.compatibleWidthLimitDp;//android:compatibleWidthLimitDp属性
Log.i("applicationInfo", "compatibleWidth: " + compatibleWidth);
// 同上,只是这时候用户无法禁止屏幕兼容模式,说明是强制启动屏幕兼容
int largestWidth = applicationInfo.largestWidthLimitDp;//android:largestWidthLimitDp属性
Log.i("applicationInfo", "largestWidth: " + largestWidth);
// 所需屏幕空间的最短尺寸,
int samllestWidth = applicationInfo.requiresSmallestWidthDp;//android:requiresSmallestWidthDp属性
Log.i("applicationInfo", "samllestWidth: " + samllestWidth);
// 应用所需的最小sdk版本
int sdkVersion = applicationInfo.targetSdkVersion;
Log.i("applicationInfo", "sdkVersion: " + sdkVersion);
int theme = applicationInfo.theme;
Log.i("applicationInfo", "theme: " + theme);//android:theme=
int uid = applicationInfo.uid;
Log.i("applicationInfo", "uid: " + uid);
// 配置文件中的uiOptions属性的值
int uiOptions = applicationInfo.uiOptions;
Log.i("applicationInfo", "uiOptions: " + uiOptions);
完毕
本文同步分享在 博客“早起的年轻人”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
我们今天的关于Windows10的Android应用程序支持:这是您需要知道的和windows10 安卓应用的分享已经告一段落,感谢您的关注,如果您想了解更多关于android-studio – 你能通过Android工作室将Android应用程序作为ARC应用程序启动吗?、Android应用内购买:您需要在定位Android 6时检查com.android.vending.BILLING权限?、Android:哪个更好,在Mac或Windows PC上开发Android应用程序?、ApplicationInfo-Android动态获取包名-Android获取所有的应用程序信息-Android获取应用程序的占用空间大小-Android应用程序管理系列(三)的相关信息,请在本站查询。
本文标签: