1AppPath
返回或设置当前路径。在设计时是不可用的。
比如你写了个程序,然后放在“C:\MyPrograme”下,则
Print AppPath就会打印出C:\MyPrograme。
2AppEXEName
返回当前正运行的可执行文件的根名(也就是应用程序的名称,不带扩展名)。如果是在开发环境下运行,则返回该工程名。
比较你编译后生成的文件为Helloexe,则Print AppEXEName会打印Hello(不带exe)。
3AppPrevInstance 属性
用来判断是否已经有前一个应用程序实例在运行。
比如说,你写了个程序Goodexe,你若不想运行程序后还没有关闭,但不想再打开一个(重复运行)。你可以在窗体的Form_Load()事件中这样判断。
If AppPrevInstance = Ture Then
MsgBox "程序已经打开。",vbInformation,"温馨提示:"
End
End If
这样你就不会重复打开多次了。
不知道我的回答你是否满意,欢迎随时交流。
Python搭建网站,利用现成的框架还是挺简单的。在这里举一个例子-利用Flask搭建一个网站。
Flask
Flask是一个使用Python编写的轻量级Web应用框架。其WSGI工具箱采用Werkzeug,模板引擎则使用Jinja2。Flask创建一个应用很简单,只需要一行代码就可以创建一个应用。一个最小的应用看起来像这样:
直接执行pythonhellopy,就可以看到页面就可以访问了,这只是官方给出的一个示例,方便学习。
应用初始化
所有Flask程序都必须创建一个程序实例。Web服务器使用一种名为Web服务器网关接口(WebServerGatewayInterface,WSGI)的协议,把接收自客户端的所有请求都转交给这个对象处理。程序实例是Flask类的对象,经常使用下述代码创建:
Flask类的构造函数只有一个必须指定的参数,即程序主模块或包的名字。在大多数程序中,Python的__name__变量就是所需的值。
路由和视图函数
客户端(例如Web浏览器)把请求发送给Web服务器,Web服务器再把请求发送给Flask程序实例。程序实例需要知道对每个URL请求运行哪些代码,所以保存了一个URL到Python函数的映射关系。处理URL和函数之间关系的程序称为路由。在Flask程序中定义路由的最简便方式,是使用程序实例提供的approute修饰器,把修饰的函数注册为路由。下面的例子说明了如何使用这个修饰器声明路由:
index()函数注册为程序根地址的处理程序。如果部署程序的服务器域名为,在浏览器中访问p>
启动服务器
程序实例用run方法启动Flask集成的开发Web服务器:
__name__=='__main__'是Python的惯常用法,在这里确保直接执行这个脚本时才启动开发Web服务器。如果这个脚本由其他脚本引入,程序假定父级脚本会启动不同的服务器,因此不会执行apprun()。服务器启动后,会进入轮询,等待并处理请求。轮询会一直运行,直到程序停止,比如按Ctrl-C键。
Flask开发的网站实例
本示例中网站的结构如下
启动服务器界面
访问WEB页面
整个是利用Flask自己搭建的一个WEB页面,数据库试过mysql和mongodb都可以正常访问。整体感觉Flask的学习成本会比Django低,而且也比Django更灵活。
一个App的程序入口到底是什么?
是ActivityThreadmain()。
整个App的主线程的消息循环是在哪里创建的?
是在ActivityThread初始化的时候,就已经创建消息循环了,所以在主线程里面创建Handler不需要指定Looper,而如果在其他线程使用Handler,则需要单独使用Looperprepare()和Looperloop()创建消息循环。
Application是在什么时候创建的?onCreate()什么时候调用的?
也是在ActivityThreadmain()的时候,再具体点呢,就是在threadattach(false)的时候。
看你的表情,不信是吧!
我们先看一下ActivityThreadattach()
这里需要关注的就是mgrattachApplication(mAppThread),这个就会通过Binder调用到AMS里面对应的方法
然后就是
thread是IApplicationThread,实际上就是ApplicationThread在服务端的代理类ApplicationThreadProxy,然后又通过IPC就会调用到ApplicationThread的对应方法
我们需要关注的其实就是最后的sendMessage(),里面有函数的编号HBIND_APPLICATION,然后这个Messge会被H这个Handler处理
最后就在下面这个方法中,完成了实例化,然后通过mInstrumentationcallApplicationOnCreate实现了onCreate()的调用。
datainfo是一个LoadeApk对象。
所以最后还是通过InstrumentationmakeApplication()实例化的,这个老板娘真的很厉害呀!
一、明确APP的发展战略
要做一款app,首先要明确几个问题:
1app的用户是谁
2用户使用app能够获得什么
3公司推出app是为了获得什么
以上问题,这里不做回答,只是一个粗狂的问题,对于APP的设计并无实际指导意义,只是暂且明确了一个产品的方向。
二、产品的核心功能有哪些
不同的产品其核心功能大相径庭,这里以电商APP为例,从前端和后台两个方面具体说明电商APP的核心功能需求有哪些
用户端APP(Android、ios版本),这里只是主要功能,在主要功能的基础之上可以增加一些完善体验的东西。
主要功能:浏览商品(列表页、详细页)、分类查看商品、加入收藏、加入购物车、直接购买、提交订单、支付订单、支付,订单列表页、订单详情页,订单可进行 的 *** 作(取消、支付、确认收货、评价、申请退换货、删除)查看商品物流信息,还有个人信息(昵称、头像、收货信息、订单、余额、积分等等),以及关于 APP端的版本查看,意见反馈,清除缓存,关于我们,用户注册、登陆和用书使用协议等。
APP需要的后台系统搭建,根据不同的电商模式,其后台架构也不同,垂直电商和电商平台有很大的差别,主要看商家端是全部自己来进行管理还是开发加盟的方 式,如淘宝的后台架构和唯品会的后台架构就是两种不同的后台架构。主要架构:账户架构(用户、商家、运营、财务、仓储物流),功能架构,用户的前端展示的 功能需要后台给出相应字段,数据接口。商家端需要发布商品、接单、 *** 作发货、填写物流信息,处理退换货,这些信息同步到用户前端,用户可以随时查看订单的 状态。需要给运营相应的 *** 作权限,商品的排序,BANNER广告,专题页链接,在后台的上传方式和前端的展示位置等等,还有数据分析,不同的商品的销售统 计,订单发生的时间、地点、用户数据等参数进行统计,财务进行相关订单的财务结算,按照商家、用户、订单进行结算,如果能够把控整个数据库安全的情况下也 可以自动结算,仓储物流信息的上传和同步,如果是1小时送这种O2O模式,还要有配送人员的接单、取货等数据同步。
三、详细进行竞品分析
确定了以上的核心功能和需要打磨的细节之外,接下来就是进行细致的竞品分析,这里仍然以电商为例进行竞品分析,竞品分析的工作如何开展呢,这里叙述一下自己的观点。
找到直接或者间接的竞品,大概找5款app左右,下载安卓和IOS端分别使用,使用脑图软件列出核心功能和提高体验的功能,使用axure等原型工具对其产品截图进行纵向和横向分析,包括UI风格、色彩和图标、文字、按钮的颜色、大小、位置等等。
从网上调研相关数据分析竞品为什么这样设计,这样设计的好与不好的地方分别说明;
根据以上数据列出表格,进行筛选,提炼精华部分,去除糟粕部分,给自己的产品设计提供必要的参考。
提出自己的产品差异化功能和特色,电商产品必须结合运营部门进行品类的分析,货源、价格、物流服务等进行分析,单个从APP产品进行优化体验,就算做出花来也没用,因为用户需要的不是产品,而是商品。
从前端展示分析出来其后台架构和相关功能的布局,这个需要观察细节,注重思维能力。比如,你去 *** 作一个款产品,购买数量填写10万个,看下是否有提示库存不足就知道其后台有没有对库存进行把控。
四、真正地开始制作APP开发需求文档
app开发需求文档的标准写法:
1app开发目的,阐明开发本软件的目的;
2代开发的app名称
3参考资料(可有可无)列举app开发需求规格说明时所参考的资料,包括项目经核准的计划任务书、合同、引用的标准和规范、项目开发计划、需求规格说明、使用实例文档,以及相关产品的软件需求规格说明。 在这里应该给出详细的信息,包括标题、作者、版本号、发表日期、出版单位或资料来源。
4app开发的功能需求。
5app的运行环境,包括硬件平台、硬件要求、 *** 作系统和版本,以及其他的软件或与其共存的应用程序等。
6条件与限制,给出影响开发人员在设计app时的约束条款,例如:必须使用或避免使用的特定技术、工具、编程语言和数据库。
7app功能划分,列举出所开发的软件能实现的全部功能,可采用文字、图表或数学公式等多种方法进行描述。
8功能描述,对各个功能进行详细的描述。
9外部接口需求。
10用户界面,对用户希望该软件所具有的界面特征进行描述。
11性能需求,包括数据精确度、响应时间、数据转换与传输时间、运行时间等。
12其他需求,如果不需要增加其他需求,可省略这一部分。
五、交付设计和文案
确定好以上的需求之后,面对设计和研发的需求文档已经告一段落,接下来就要在UI做设计、交互设计师做交互的时候,找相关部门人员完善文案需求,和项目经理一起对工作进行细分,确认时间节点,最后由交互设计师输出一套高保证原型。
六、交付研发
这样子做出来的高保证原型,在各个细节都已经做到了完善,设计、交互、研发、运营等等对工作也已经胸有成竹,那么大家就可以坐下来好好开个简短的会议,确认每个人的具体工作,给出相应的时间节点,然后随时跟进开发需求就可以了。
App():注册一个小程序,小程序的入口方法
getApp():获取全局对象,然后进行全局变量和全局方法的使用
appjs
demojs(其他页面调用)
1、App() 必须在 appjs 中注册,且不能注册多个。
2、不要在定义于 App() 内的函数中调用 getApp() ,使用 this 就可以拿到 app 实例。
网站导航
软件需求文档格式的标准写法
1.引言
1.1编写目的
·阐明开发本软件的目的;
1.2项目背景
·标识待开发软件产品的名称、代码;
·列出本项目的任务提出者、项目负责人、系统分析员、系统设计员、程序设计员、程序员、资料员以及与本项目开展工作直接有关的人员和用户;
·说明该软件产品与其他有关软件产品的相互关系。
1.3术语说明
列出本文档中所用到的专门术语的定义和英文缩写词的原文。
1.4参考资料(可有可无)
列举编写软件需求规格说明时所参考的资料,包括项目经核准的计划任务书、合
同、引用的标准和规范、项目开发计划、需求规格说明、使用实例文档,以及相关产品
的软件需求规格说明。
在这里应该给出详细的信息,包括标题、作者、版本号、发表日期、出版单位或资
料来源。
2.项目概述
2.1待开发软件的一般描述
描述待开发软件的背景,所应达到的目标,以及市场前景等。
2.2待开发软件的功能
简述待开发软件所具有的主要功能。为了帮助每个读者易于理解,可以使用列表或
图形的方法进行描述。使用图形表示,可以采用:
·顶层数据流图;
·用例UseCase图;
·系统流程图;
·层次方框图。
2.3用户特征和水平(是哪类人使用)
描述最终用户应具有的受教育水平、工作经验及技术专长。
2.4运行环境
描述软件的运行环境,包括硬件平台、硬件要求、 *** 作系统和版本,以及其他的软
件或与其共存的应用程序等。
2.5条件与限制
给出影响开发人员在设计软件时的约束条款,例如:
·必须使用或避免使用的特定技术、工具、编程语言和数据库;
·硬件限制;
·所要求的开发规范或标准。
3.功能需求
3.1功能划分
列举出所开发的软件能实现的全部功能,可采用文字、图表或数学公式等多种方法
进行描述。
3.2功能描述
对各个功能进行详细的描述。
4.外部接口需求
4.1用户界面
对用户希望该软件所具有的界面特征进行描述。以下是可能要包括的一些特征:
·将要采用的图形用户界面标准或产品系列的风格;
·屏幕布局;
·菜单布局;
·输入输出格式;
·错误信息显示格式;
建议采用RAD开发工具,比如Visio,构造用户界面。
4.2硬件接口
描述系统中软件产品和硬件设备每一接口的特征,以及硬件接口支持的设备、软件与硬件接口之间,以及硬件接口与支持设备之间的约定,包括交流的数据和控制信息的性质以及所使用的通信协议。
4.3软件接口
描述该软件产品与其有关软件的接口关系,并指出这些外部软件或组件的名字和版本号。比如运行在什么 *** 作系统上,访问何种类型的数据库,使用什么数据库连接组件,和什么商业软件共享数据等。
4.4通信接口
描述和本软件产品相关的各种通信需求,包括电子邮件、Web浏览器、网络通信协议等。
4.5故障处理
对可能的软件、硬件故障以及对各项性能而言所产生的后果进行处理。
5.性能需求
5.1数据精确度
输出结果的精度。
5.2时间特性
时间特性可包括如下几方面
·响应时间;
·更新处理时间;
·数据转换与传输时间;
·运行时间等。
5.3适应性
在 *** 作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,软件的适应能力。
6.其他需求
列出在本文的其他部分未出现的需求。如果不需要增加其他需求,可省略这一部分。
7.数据描述
7.1静态数据
7.2动态数据
包括输入数据和输出数据。
7.3数据库描述
给出使用数据库的名称和类型。
7.4数据字典
对于数据流图、层次方框图中出现的所有图形元素在数据字典中都要作为一个词条加以定义,使得每一个图形元素都有唯一的一个清晰明确的解释。
数据字典中所有的定义必须是严密的、精确的,不可有二意性。
7.5数据采集
·列出提供输入数据的机构、设备和人员
·列出数据输入的手段、介质和设备;
·列出数据生成的方法、介质和设备。
8.附录
包括分析模型,待定问题图表等。
android应用开发框架是ApplicationFramework其系统架构由5部分组成,分别是:LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、。第二部分将详细介绍这5个部分。下面自底向上分析各层。
Android架构
1、LinuxKernel
Android基于Linux26提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(ServiceAessPoint),专业点可以说是高内聚、低耦合。如果你只是做应用开发,就不需要深入了解LinuxKernel层。
2、AndroidRuntime
Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx是一套工具,可以将Javaclass转换成dex格式。一个dex文件通常会有多个class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。
3、Libraries
Android包含一个C/C库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(applicationframework)暴露给开发者。下面列出一些核心库:系统C库--标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备媒体库--基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、H264、MP3、AAC、AMR、JPG、PNG界面管理--管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层LibWebCore--新式的Web浏览器引擎,驱动Android浏览器和内嵌的web视图SGL--基本的2D图形引擎3D库--基于OpenGLES10APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅FreeType--位图和矢量字体渲染SQLite--所有应用程序都可以使用的强大而轻量级的关系数据库引擎
4、ApplicationFramework
通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用程序其实是一组服务和系统,包括:视图(View)--丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器内容提供者(ContentProviders)--使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据资源管理器(ResourceManager)--提供访问非代码资源,如本地化字符串、图形和布局文件通知管理器(Manager)--使所有的应用程序能够在状态栏显示自定义警告活动管理器(ActivityManager)--管理应用程序生命周期,提供通用的导航回退功能
5、
Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发!从上面我们知道Android的架构是分层的,非常清晰,分工很明确。Android本身是一套软件堆迭(SoftwareStack),或称为「软件迭层架构」,迭层主要分成三层: *** 作系统、中间件、应用程序。从上面我们也看到了开源的力量,一个个熟悉的开源软件在这里贡献了自己的一份力量。
以上就是关于vb app 详解全部的内容,包括:vb app 详解、如何用Python搭建一个网站、一个App的程序入口到底是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)