当前位置: 首页 > news >正文

制作线下交易平台网站建设阿里邮箱登录入口

制作线下交易平台网站建设,阿里邮箱登录入口,网站建设数据库选择,甘肃做网站的网络公司转载自#xff1a; https://www.cnblogs.com/shujk/p/14961572.html 正文#xff1a; AndroidManifest.xml 是每个android程序中必须的文件#xff0c;它位于整个项目的根目录。我们每天都在使用这个文件#xff0c;往里面配置程序运行所必要的组件#xff0c;权限…转载自 https://www.cnblogs.com/shujk/p/14961572.html 正文 AndroidManifest.xml 是每个android程序中必须的文件它位于整个项目的根目录。我们每天都在使用这个文件往里面配置程序运行所必要的组件权限以及一些相关信息。 一、概述   AndroidManifest.xml是Android应用的入口文件它描述了package中暴露的组件activities, services, 等等他们各自的实现类各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation安全控制和测试。 二、结构图 ?xmlversion1.0encodingutf-8? manifestuses-sdk/ uses-configuration/ uses-feature/ uses-permission/permission/permission-tree/permission-group/instrumentation/ supports-screens/application activity intent-filteraction/ category/ /intent-filter /activityactivity-alias intent-filter/intent-filter meta-data/ /activity-alias service intent-filter/intent-filter meta-data/ /servicereceiverintent-filter/intent-filter meta-data/ /receiver provider grant-uri-permission/meta-data/ /provider uses-library/ /application /manifest三、详解 1、Manifest:属性 manifest xmlns:androidhttp://schemas.android.com/apk/res/androidpackagecom.somnus.yunyiandroid:sharedUserIdstringandroid:sharedUserLabelstring resourceandroid:versionCodeintegerandroid:versionNamestringandroid:installLocation[auto | internalOnly | preferExternal] /manifestA、xmlns:android 定义android命名空间一般为http://schemas.android.com/apk/res/android这样使得Android中各种标准属性能在文件中使用提供了大部分元素中的数据。 B、package 指定本应用内java主程序包的包名它也是一个应用进程的默认名称 C、sharedUserId 表明数据权限因为默认情况下Android给每个APK分配一个唯一的UserID所以是默认禁止不同APK访问共享数据的。若要共享数据第一可以采用Share Preference方法第二种就可以采用sharedUserId了将不同APK的sharedUserId都设为一样则这些APK之间就可以互相共享数据了。详见http://wallage.blog.163.com/blog/static/17389624201011010539408/ D、sharedUserLabel 一个共享的用户名它只有在设置了sharedUserId属性的前提下才会有意义 E、versionCode 是给设备程序识别版本(升级)用的必须是一个interger值代表app更新过多少次比如第一版一般为1之后若要更新版本就设置为23等等。。。 F、versionName 这个名称是给用户看的你可以将你的APP版本号设置为1.1版后续更新版本设置为1.2、2.0版本等等。。。 G、installLocation 安装参数是Android2.2中的一个新特性installLocation有三个值可以选择internalOnly、auto、preferExternal 选择preferExternal,系统会优先考虑将APK安装到SD卡上(当然最终用户可以选择为内部ROM存储上如果SD存储已满也会安装到内部存储上) 选择auto系统将会根据存储空间自己去适应 选择internalOnly是指必须安装到内部才能运行 2、Application:属性 一个AndroidManifest.xml中必须含有一个Application标签这个标签声明了每一个应用程序的组件及其属性(如icon,label,permission等) application android:allowClearUserData[true | false]android:allowTaskReparenting[true | false]android:backupAgentstringandroid:debuggable[true | false]android:descriptionstring resourceandroid:enabled[true | false]android:hasCode[true | false]android:icondrawable resourceandroid:killAfterRestore[true | false]android:labelstring resourceandroid:manageSpaceActivitystringandroid:namestringandroid:permissionstringandroid:persistent[true | false]android:processstringandroid:restoreAnyVersion[true | false]android:taskAffinitystringandroid:themeresource or theme /applicationA、android:allowClearUserData(‘true’ or ‘false’) 用户是否能选择自行清除数据默认为true程序管理器包含一个选择允许用户清除数据。当为true时用户可自己清理用户数据反之亦然 B、android:allowTaskReparenting(‘true’ or ‘false’) 是否允许activity更换从属的任务比如从短信息任务切换到浏览器任务 C、android:backupAgent 这也是Android2.2中的一个新特性设置该APP的备份属性值应该是一个完整的类名如com.project.TestCase此属性并没有默认值并且类名必须得指定(就是个备份工具将数据备份到云端的操作) D、android:debuggable 这个从字面上就可以看出是什么作用的当设置为true时表明该APP在手机上可以被调试。默认为false,在false的情况下调试该APP就会报以下错误 Device XXX requires that applications explicitely declare themselves as debuggable in their manifest. Application XXX does not have the attribute ‘debuggable’ set to TRUE in its manifest and cannot be debugged. E、android:description/android:label 此两个属性都是为许可提供的均为字符串资源当用户去看许可列表(android:label)或者某个许可的详细信息(android:description)时这些字符串资源就可以显示给用户。label应当尽量简短之需要告知用户该许可是在保护什么功能就行。而description可以用于具体描述获取该许可的程序可以做哪些事情实际上让用户可以知道如果他们同意程序获取该权限的话该程序可以做什么。我们通常用两句话来描述许可第一句描述该许可第二句警告用户如果批准该权限会可能有什么不好的事情发生 F、android:enabled Android系统是否能够实例化该应用程序的组件如果为true每个组件的enabled属性决定那个组件是否可以被 enabled。如果为false它覆盖组件指定的值所有组件都是disabled。 G、android:hasCode(‘true’ or ‘false’) 表示此APP是否包含任何的代码默认为true若为false则系统在运行组件时不会去尝试加载任何的APP代码 一个应用程序自身不会含有任何的代码除非内置组件类比如Activity类此类使用了AliasActivity类当然这是个罕见的现象 (在Android2.3可以用标准C来开发应用程序可在androidManifest.xml中将此属性设置为false,因为这个APP本身已经不含有任何的JAVA代码了) H、android:icon 这个很简单就是声明整个APP的图标图片一般都放在drawable文件夹下 I、android:killAfterRestore J、android:manageSpaceActivity K、android:name 为应用程序所实现的Application子类的全名。当应用程序进程开始时该类在所有应用程序组件之前被实例化。 若该类(比方androidMain类)是在声明的package下则可以直接声明android:name”androidMain”,但此类是在package下面的子包的话就必须声明为全路径或android:name”package名称.子包名成.androidMain” L、android:permission 设置许可名这个属性若在上定义的话是一个给应用程序的所有组件设置许可的便捷方式当然它是被各组件设置的许可名所覆盖的 M、android:presistent 该应用程序是否应该在任何时候都保持运行状态,默认为false。因为应用程序通常不应该设置本标识持续模式仅仅应该设置给某些系统应用程序才是有意义的。 N、android:process 应用程序运行的进程名它的默认值为元素里设置的包名当然每个组件都可以通过设置该属性来覆盖默认值。如果你想两个应用程序共用一个进程的话你可以设置他们的android:process相同但前提条件是他们共享一个用户ID及被赋予了相同证书的时候 O、android:restoreAnyVersion 同样也是android2.2的一个新特性用来表明应用是否准备尝试恢复所有的备份甚至该备份是比当前设备上更要新的版本默认是false P、android:taskAffinity 拥有相同的affinity的Activity理论上属于相同的Task应用程序默认的affinity的名字是元素中设定的package名 Q、android:theme 是一个资源的风格它定义了一个默认的主题风格给所有的activity,当然也可以在自己的theme里面去设置它有点类似style。 3、Activity:属性 activity android:allowTaskReparenting[true | false]android:alwaysRetainTaskState[true | false]android:clearTaskOnLaunch[true | false]android:configChanges[mcc, mnc, locale,touchscreen, keyboard, keyboardHidden,navigation, orientation, screenLayout,fontScale, uiMode]android:enabled[true | false]android:excludeFromRecents[true | false]android:exported[true | false]android:finishOnTaskLaunch[true | false]android:icondrawable resourceandroid:labelstring resourceandroid:launchMode[multiple | singleTop |singleTask | singleInstance]android:multiprocess[true | false]android:namestringandroid:noHistory[true | false] android:permissionstringandroid:processstringandroid:screenOrientation[unspecified | user | behind |landscape | portrait |sensor | nosensor]android:stateNotNeeded[true | false]android:taskAffinitystringandroid:themeresource or themeandroid:windowSoftInputMode[stateUnspecified,stateUnchanged, stateHidden,stateAlwaysHidden, stateVisible,stateAlwaysVisible, adjustUnspecified,adjustResize, adjustPan] /activity1、android:alwaysRetainTaskState 是否保留状态不变 比如切换回home, 再从新打开activity处于最后的状态。比如一个浏览器拥有很多状态(当打开了多个TAB的时候)用户并不希望丢失这些状态时此时可将此属性设置为true 2、android:clearTaskOnLaunch 比如 P 是 activity, Q 是被P 触发的 activity, 然后返回Home, 重新启动 P是否显示 Q 3、android:configChanges 当配置list发生修改时 是否调用 onConfigurationChanged() 方法 比如 “locale|navigation|orientation”. 这个我用过,主要用来看手机方向改变的. android手机在旋转后,layout会重新布局, 如何做到呢? 正常情况下. 如果手机旋转了.当前Activity后杀掉,然后根据方向重新加载这个Activity. 就会从onCreate开始重新加载. 如果你设置了 这个选项, 当手机旋转后,当前Activity之后调用onConfigurationChanged() 方法. 而不跑onCreate方法等. 4、android:excludeFromRecents 是否可被显示在最近打开的activity列表里默认是false 5、android:finishOnTaskLaunch 当用户重新启动这个任务的时候是否关闭已打开的activity默认是false 如果这个属性和allowTaskReparenting都是true,这个属性就是王牌。Activity的亲和力将被忽略。该Activity已经被摧毁并非re-parented 6、android:launchMode(Activity加载模式) 在多Activity开发中有可能是自己应用之间的Activity跳转或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式而不是使用默认的加载模式 Activity有四种加载模式 standard、singleTop、singleTask、singleInstance(其中前两个是一组、后两个是一组)默认为standard standard就是intent将发送给新的实例所以每次跳转都会生成新的activity。 singleTop也是发送新的实例但不同standard的一点是在请求的Activity正好位于栈顶时(配置成singleTop的Activity)不会构造新的实例 singleTask和后面的singleInstance都只创建一个实例当intent到来需要创建设置为singleTask的Activity的时候系统会检查栈里面是否已经有该Activity的实例。如果有直接将intent发送给它。 singleInstance 首先说明一下task这个概念Task可以认为是一个栈可放入多个Activity。比如启动一个应用那么Android就创建了一个Task然后启动这个应用的入口Activity那在它的界面上调用其他的Activity也只是在这个task里面。那如果在多个task中共享一个Activity的话怎么办呢。举个例来说如果开启一个导游服务类的应用程序里面有个Activity是开启GOOGLE地图的当按下home键退回到主菜单又启动GOOGLE地图的应用时显示的就是刚才的地图实际上是同一个Activity实际上这就引入了singleInstance。singleInstance模式就是将该Activity单独放入一个栈中这样这个栈中只有这一个Activity不同应用的intent都由这个Activity接收和展示这样就做到了共享。当然前提是这些应用都没有被销毁所以刚才是按下的HOME键如果按下了返回键则无效 7、android:multiprocess 是否允许多进程默认是false 具体可看该篇文章bangchui.org 8、android:noHistory 当用户从Activity上离开并且它在屏幕上不再可见时Activity是否从Activity stack中清除并结束。默认是false。Activity不会留下历史痕迹 9、android:screenOrientation activity显示的模式 默认为unspecified由系统自动判断显示方向 landscape横屏模式宽度比高度大 portrait竖屏模式, 高度比宽度大 user模式用户当前首选的方向 behind模式和该Activity下面的那个Activity的方向一致(在Activity堆栈中的) sensor模式有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换 nosensor模式忽略物理感应器这样就不会随着用户旋转设备而更改了 10、android:stateNotNeeded activity被销毁或者成功重启时是否保存状态 11、android:windowSoftInputMode activity主窗口与软键盘的交互模式可以用来避免输入法面板遮挡问题Android1.5后的一个新特性。 这个属性能影响两件事情 【A】当有焦点产生时软键盘是隐藏还是显示 【B】是否减少活动主窗口大小以便腾出空间放软键盘 各值的含义 【A】stateUnspecified软键盘的状态并没有指定系统将选择一个合适的状态或依赖于主题的设置 【B】stateUnchanged当这个activity出现时软键盘将一直保持在上一个activity里的状态无论是隐藏还是显示 【C】stateHidden用户选择activity时软键盘总是被隐藏 【D】stateAlwaysHidden当该Activity主窗口获取焦点时软键盘也总是被隐藏的 【E】stateVisible软键盘通常是可见的 【F】stateAlwaysVisible用户选择activity时软键盘总是显示的状态 【G】adjustUnspecified默认设置通常由系统自行决定是隐藏还是显示 【H】adjustResize该Activity总是调整屏幕的大小以便留出软键盘的空间 【I】adjustPan当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分 4、intent-filter: 属性 结构图 intent-filter android:icondrawable resourceandroid:labelstring resourceandroid:priorityinteger action /category /data //intent-filter intent-filter属性 android:priority(解释有序广播主要是按照声明的优先级别如A的级别高于B那么广播先传给A再传给B。优先级别就是用设置priority属性来确定范围是从-10001000数越大优先级别越高) Intent filter内会设定的资料包括action,data与category三种。也就是说filter只会与intent里的这三种资料作对比动作 action属性 action很简单只有android:name这个属性。常见的android:name值为android.intent.action.MAIN表明此activity是作为应用程序的入口。有关android:name具体有哪些值可参照这个网址如流新一代智能工作平台 category属性 category也只有android:name属性。常见的android:name值为android.intent.category.LAUNCHER(决定应用程序是否显示在程序列表里) 有关android:name具体有哪些值可参照这个网址http://chroya.javaeye.com/blog/685871 data属性 5、meta-data属性 meta-data android:namestringandroid:resourceresource specificationandroid:valuestring/这是该元素的基本结构.可以包含在 四个元素中。 android:name解释元数据项的名字为了保证这个名字是唯一的采用java风格的命名规范如com.woody.project.fried) android:resource(解释资源的一个引用指定给这个项的值是该资源的id。该id可以通过方法Bundle.getInt()来从meta-data中找到。) android:value(解释指定给这一项的值。可以作为值来指定的数据类型并且组件用来找回那些值的Bundle方法[getString],[getInt],[getFloat],[getString],[getBoolean]) 6、activity-alias属性 activity-alias android:enabled[true | false]android:exported[true | false]android:icondrawable resourceandroid:labelstring resourceandroid:namestringandroid:permissionstringandroid:targetActivitystringintent-filter/ meta-data/ /activity-alias是为activity创建快捷方式的如下实例 activity android:name.shortcutintent-filteraction android:nameandroid.intent.action.MAIN //intent-filter/activityactivity-alias android:name.CreateShortcuts android:targetActivity.shortcut android:labelstring/shortcutintent-filteraction android:nameandroid.intent.action.CREATE_SHORTCUT /category android:nameandroid.intent.category.DEFAULT //intent-filter/activity-alias其中android.targetActivity是指向对应快捷方式的activity,如上述的shortcut(此Activity名) android:label是指快捷方式的名称而快捷方式的图标默认是给定的application图标 7、Service 【1】service与activity同级与activity不同的是它不能自己启动的运行在后台的程序如果我们退出应用时Service进程并没有结束它仍然在后台运行。比如听音乐网络下载数据等都是由service运行的 【2】service生命周期Service只继承了onCreate(),onStart(),onDestroy()三个方法第一次启动Service时先后调用了onCreate(),onStart()这两个方法当停止Service时则执行onDestroy()方法如果Service已经启动了当我们再次启动Service时不会在执行onCreate()方法而是直接执行onStart()方法 【3】service与activity间的通信 Service后端的数据最终还是要呈现在前端Activity之上的因为启动Service时系统会重新开启一个新的进程这就涉及到不同进程间通信的问题了(AIDL)Activity与service间的通信主要用IBinder负责。具体可参照activity和service之间的相互通信方法_51CTO博客_activity与service通信 【4】 service android:enabled[true | false]android:exported[true | false]android:icondrawable resourceandroid:labelstring resourceandroid:namestringandroid:permissionstringandroid:processstring/serviceservice标签内的属性之前已有描述在此不重复了 8、Receiver receiver的属性与service一样这里就不显示了 BroadcastReceiver用于发送广播broadcast是在应用程序之间传输信息的一种机制而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件具体参照http://kevin2562.javaeye.com/blog/686787 9、Provider:属性 provider android:authoritieslistandroid:enabled[true | false]android:exported[true | false]android:grantUriPermissions[true | false]android:icondrawable resourceandroid:initOrderintegerandroid:labelstring resourceandroid:multiprocess[true | false]android:namestringandroid:permissionstringandroid:processstringandroid:readPermissionstringandroid:syncable[true | false]android:writePermissionstringgrant-uri-permission/meta-data//providercontentProvider(数据存储) 【1】android:authorities 标识这个ContentProvider调用者可以根据这个标识来找到它 【2】android:grantUriPermission 对某个URI授予的权限 【3】android:initOrder 10、uses-library 用户库可自定义。所有android的包都可以引用 11、supports-screens supports-screens android:smallScreens[true | false] android:normalScreens[true | false] android:largeScreens[true | false] android:anyDensity[true | false] /这是在android1.6以后的新特性支持多屏幕机制 各属性含义这四个属性是否支持大屏是否支持中屏是否支持小屏是否支持多种不同密度 12、uses-configuration 与uses-feature性能都差不多 uses-configuration android:reqFiveWayNav[true | false] android:reqHardKeyboard[true | false]android:reqKeyboardType[undefined | nokeys | qwerty | twelvekey]android:reqNavigation[undefined | nonav | dpad | trackball | wheel]android:reqTouchScreen[undefined | notouch | stylus | finger] /uses-feature android:glEsVersionintegerandroid:namestringandroid:required[true | false] /这两者都是在描述应用所需要的硬件和软件特性以便防止应用在没有这些特性的设备上安装。 13、uses-sdk uses-sdk android:minSdkVersionintegerandroid:targetSdkVersionintegerandroid:maxSdkVersioninteger/描述应用所需的api level就是版本目前是android 2.2 8android2.1 7android1.6 4android1.53 在此属性中可以指定支持的最小版本目标版本以及最大版本 14、instrumentation instrumentation android:functionalTest[true | false]android:handleProfiling[true | false]android:icondrawable resourceandroid:labelstring resourceandroid:namestringandroid:targetPackagestring/定义一些用于探测和分析应用性能等等相关的类可以监控程序。在各个应用程序的组件之前instrumentation类被实例化 android:functionalTest(解释instrumentation类是否能运行一个功能测试默认为false) 15、permission、uses-permission、permission-tree 、permission-group 区别 最常用的当属当我们需要获取某个权限的时候就必须在我们的manifest文件中声明此与同级具体权限列表请看此处 通常情况下我们不需要为自己的应用程序声明某个权限除非你提供了供其他应用程序调用的代码或者数据。这个时候你才需要使用 这个标签。很显然这个标签可以让我们声明自己的权限。比如 application . . .activity android:nameXXX . . . android:permissioncom.teleca.project.MY_SECURITY /activity/application当然自己声明的permission也不能随意的使用还是需要使用来声明你需要该权限 就是声明一个标签该标签代表了一组permissions而是为一组permissions声明了一个namespace。 四、分享几个常用方法 /**获取APP版本号* param context* return*/public static String getAppVersion(Context context) {try {// 获取packagemanager的实例PackageManager packageManager context.getPackageManager();// getPackageName()是你当前类的包名0代表是获取版本信息PackageInfo packInfo packageManager.getPackageInfo(context.getPackageName(),0);String version packInfo.versionName;return version;} catch (NameNotFoundException e) {e.printStackTrace();}return null;}/*** get android os version no* return*/public static float getAndroidVersion() {return Float.valueOf(android.os.Build.VERSION.RELEASE);}/*** get device model* return*/public String getDeviceModel () {return android.os.Build.MODEL;}/*** get android os sdk version 2.2 8,2.3 9,4.2.1 17* return sdk version*/public static int getSDKVersion(){return android.os.Build.VERSION.SDK_INT;}
http://www.hkea.cn/news/14256907/

相关文章:

  • 网站设计深圳市苏州公司网站开发
  • 上海市嘉定建设局网站做网站建设的利润
  • 网站建设合同的注意点珠宝钻石网站建站
  • wordpress页脚设置西安seo培训机构
  • 校园二手网站开发的意义公司网站建设教程
  • php制作网站江西南昌网站开发
  • 为何建设银行网站无法登陆wordpress 全局变量
  • 暴雪战网官方网站入口网站建设飠金手指排名十二
  • 平度168网站建设探测网站是什么程序做的
  • 免费个人网站制作在线网站建设制作经验足
  • 北京建行网站网站制作的文章
  • 一个网站需要哪些备案服务器上网站建设
  • 做资讯类网站需要特殊资质吗仿搜狐视频网站源码
  • 成都三合一网站建设昆明公司做网站
  • 网站维护运行建设报告帮公司做网站赚钱吗
  • 教资报名网站设置广西南宁相亲网
  • 微信官方网站下载安装建设网站可选择的方案
  • 武昌网站制作公司网络推广的策略方法
  • 移动网站建设的基本流程图什么是网络营销传播
  • 网页设计与制作是什么意思沈阳网站优化培训
  • 重庆企业网站推广费用wordpress访问显示502
  • 为网站开发android客户端wordpress博客怎么搜索
  • 做美工的网站小说网站搭建教程
  • 气象服务网站建设绿色商城网站模板
  • 网站建设 合优企业上海自贸区注册公司在哪里
  • 莱芜网站优化公司网站建设全包
  • 可以做3d电影网站软件合集
  • 网站制作的企业有哪些运城网站开发
  • 网站后台管理系统使用手册杭州网页设计培训机构
  • 织梦网站修改教程视频教程珠海市网站建设的公司