对于想了解android–设置Ionic应用程序的错误的读者,本文将是一篇不可错过的文章,我们将详细介绍android默认应用设置,并且为您提供关于(6Android)Android应用程序的基本组成
对于想了解android – 设置Ionic应用程序的错误的读者,本文将是一篇不可错过的文章,我们将详细介绍android 默认应用设置,并且为您提供关于(6 Android) Android应用程序的基本组成、Android ApplicationInfo 应用程序信息的详解、Android minSdkVersion = 3但Android市场的Android 1.5设备无法使用应用程序?、Android Studio 错误:“清单合并失败:针对 Android 12 的应用程序”的有价值信息。
本文目录一览:- android – 设置Ionic应用程序的错误(android 默认应用设置)
- (6 Android) Android应用程序的基本组成
- Android ApplicationInfo 应用程序信息的详解
- Android minSdkVersion = 3但Android市场的Android 1.5设备无法使用应用程序?
- Android Studio 错误:“清单合并失败:针对 Android 12 的应用程序”
android – 设置Ionic应用程序的错误(android 默认应用设置)
我可以设置项目,但是当我想通过’ionic platform add’添加Android平台时,它说:
' ? Error reading config file: Error: ENOENT,open 'D:\Projects\android2\config.xml' Error happened: undefined'
当我想通过’ionic build android’构建应用程序时,它说:
“目前的工作目录不是基于Cordova的项目.”
当我从离子FAQ(‘cordova create’)运行修复时,它说:
'At least the dir must be provided to create new project. See `cordova help`.'
有谁知道为什么会发生这种错误?
编辑:尝试在多台计算机(Windows 7 64)上,得到相同的错误.
解决方法
例如:
step1:离子启动MyFirstApp空白
运行此命令后,将创建一个文件夹,在该文件夹中运行您的驱动器.
step2:通过运行命令’cd MyFirstApp’进入文件夹名称’MyFirstApp’
step3:然后编写离子平台添加android
我认为这对你有用!快乐的编码
(6 Android) Android应用程序的基本组成
Android应用程序是由组件组成的,组件可以调用相互独立的功能模块。根据完成的功能,组件可划分为四类核心组件,即Activity、Service、broadcastReceiver和ContentProvider。
1 Activity组件
Activity是Android最重要的组件,负责用户界面的设计。Activity用户界面框架采用MVC 模式(Model View Controller) 。控制器负责接受并响应程序的外部动作;通过视图反馈应用程序给用户的信息(UI 界面反馈);模型是应用程序的核心,用于保存数据和代码。
2 Service组件
Service是Android提供的无用户界面、长时间在后台运行的组件。Android 提供了许多系统服务程序。
3 broadcastReceiver组件
在Android系统中,当有特定事件发生时就会产生相应的广播。例如,开机启动完成、收到短信、电池电量改变、网络状态改变等。
为了通知手机用户有事件发生,在通常情况下,通知管理器(notificationmanager)会在手机的状态栏里产生一个具有提示音的通知,用户通过下滑手势可以查看相关信息。
broadcastReceiver(广播接收者)接收来自系统或其他应用程序的广播,并做出回应。
4 ContentProvider组件
为了跨进程共享数据, Android提供了ContentProvider接口,可以在无须了解数据源、路径的情况下,对共享数据进行查询、添加、删除和更新等操作。
5 Application、Context和Intent
a.应用对象Application
当Android程序启动时系统会创建一个Application类型的对象,用来存储系统的一些信息完成数据传递、共享和缓存等操作。
Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期,且是全局、单例的,即在不同的Activity和Service中获得的对象都是同一个对象。
b.上下文对象Context
Activity和Service都是Context的子类,通过Context提供的方法getApplicationContext()就能获得Context对象。
broadcastReceiver、ContentProvider并不是Context的子类,其所持有的Context都是由其他组件传递过来的。
Android组件及通信机制,如图所示。
c.意图对象Intent
Android提供轻量级的进程间通信机制Intent,使跨进程组件通信和发送系统广播成为可能,组件Activity、Service和broadcastReceiver都是通过消息机制被启动(激活)的,其使用的消息就封装在对象Intent里。
6 Android应用程序的运行入口
在一个Android应用程序开始运行的时候,会单独启动一个进程(Process)。默认的情况下,这个应用程序中的所有组件(Activity、Service、broadcastReceiver和ContentProvider)都会运行在这个进程里。
一个Android应用程序通常由多个Activity组成,但只有一个主Activity。在项目清单文件中使用< activity >
标签注册主Activity时,还需要内嵌 < intent-filter >
、 < action> 和 < category >
标签,以此说明该Activity为Android应用程序的入口。定义一个MainActivity.java为应用的主
Activity代码如下:
Android ApplicationInfo 应用程序信息的详解
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);
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
Android minSdkVersion = 3但Android市场的Android 1.5设备无法使用应用程序?
<uses-sdk android:minSdkVersion="3" /> <supports-screens android:normalScreens="true" android:smallScreens="false" android:largeScreens="false" android:anyDensity="false"/>
所以该应用程序应该适用于Android 1.5及更高版本的设备.但我无法从Android Market找到适用于1.5设备的此应用程序.应用程序适用于1.6及更高版本的设备.
我可以使用USB线在1.5设备上安装应用程序,它工作正常.
请解释为什么市场上没有适用于1.5设备的应用程序.
谢谢
解决方法
<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true" /> <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/>
这似乎有效.支持屏幕只在SDK4中实现,所以我认为你应该添加它.
Android Studio 错误:“清单合并失败:针对 Android 12 的应用程序”
我已将我的模拟器版本和 Android SDK 版本更新为 Android S ( Android
12 )。更新后,我无法运行该项目。我无法运行 Hello,
World!
项目(空项目),但我可以构建 Gradle,但我无法运行该项目。我总是得到错误:
清单合并失败:针对 Android 12 及更高版本的应用需要为
android:exported
相应组件定义了意图过滤器时指定显式值。有关详细信息,请参阅
https://developer.android.com/guide/topics/manifest/activity-
element#exported 。
我该如何解决?
这是一个屏幕截图:
使用 Android 12 SDK 时如何解决此问题?
答案1
小编典典您需要指定android:exported="false"
或android:exported="true"
显现:
<activity android:name=".MainActivity" android:exported="true" android:theme="@style/Theme.MyApplication.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter></activity>
如文件中所述:
如果您的应用以 Android 12 为目标并包含使用 Intent 过滤器的活动、服务或广播接收器,则您必须为这些应用组件显式声明
android:exported 属性。警告 :如果活动、服务或广播接收器使用意图过滤器并且没有明确声明的 android:exported 值,则您的应用无法安装在运行
Android 12 的设备上。
还要检查何时对“android:exported”值使用真/假。
今天的关于android – 设置Ionic应用程序的错误和android 默认应用设置的分享已经结束,谢谢您的关注,如果想了解更多关于(6 Android) Android应用程序的基本组成、Android ApplicationInfo 应用程序信息的详解、Android minSdkVersion = 3但Android市场的Android 1.5设备无法使用应用程序?、Android Studio 错误:“清单合并失败:针对 Android 12 的应用程序”的相关知识,请在本站进行查询。
本文标签: