凤彩网注册

  • <tr id='8DRrI6'><strong id='8DRrI6'></strong><small id='8DRrI6'></small><button id='8DRrI6'></button><li id='8DRrI6'><noscript id='8DRrI6'><big id='8DRrI6'></big><dt id='8DRrI6'></dt></noscript></li></tr><ol id='8DRrI6'><option id='8DRrI6'><table id='8DRrI6'><blockquote id='8DRrI6'><tbody id='8DRrI6'></tbody></blockquote></table></option></ol><u id='8DRrI6'></u><kbd id='8DRrI6'><kbd id='8DRrI6'></kbd></kbd>

    <code id='8DRrI6'><strong id='8DRrI6'></strong></code>

    <fieldset id='8DRrI6'></fieldset>
          <span id='8DRrI6'></span>

              <ins id='8DRrI6'></ins>
              <acronym id='8DRrI6'><em id='8DRrI6'></em><td id='8DRrI6'><div id='8DRrI6'></div></td></acronym><address id='8DRrI6'><big id='8DRrI6'><big id='8DRrI6'></big><legend id='8DRrI6'></legend></big></address>

              <i id='8DRrI6'><div id='8DRrI6'><ins id='8DRrI6'></ins></div></i>
              <i id='8DRrI6'></i>
            1. <dl id='8DRrI6'></dl>
              1. <blockquote id='8DRrI6'><q id='8DRrI6'><noscript id='8DRrI6'></noscript><dt id='8DRrI6'></dt></q></blockquote><noframes id='8DRrI6'><i id='8DRrI6'></i>
                首页 APP开发 正文

                app开发的结①构(app框架结构)

                APP开发 1611
                本篇文章给大家谈谈app开◇发的结构,以及app框架结构对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、干货|深度讲解APP结构,看〖完后你学会了?

                本篇文章给大家谈谈app开发的卐结构,以及app框架结构对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

                本文目录一览:

                干货|深度讲解APP结构,看完后你学会了?

                本文节选自霍格沃兹测试学院内部教材

                我们要学习App结构,那么就是一定先了解APK包的结构。

                什么是APK??

                APK 是 Android Package 的缩写,其实就是 Android 的安装包。通过将 APK 文件直〓接传到 Android 模拟器或

                Android 手机中执行即可安装。

                APK 文件其实是 zip 格式,但后缀名被修改为 apk,通过 Android Studio 可以看到 APK 内部的文件。

                APK结构??

                知道什么是 APK 之后,接下来再来看看 APK 里面的结构是怎么样的。

                下面拿雪∑ 球 APK 来举例。

                ? * lib/ 目录

                存放的是一些 so 文件。so 文件是二进制文件,用来兼容各种类型的 CPU。

                Android 开发中,在打包发布应用时会选择应用适配的 CPU 架构平台,在引◢用第三方库时也遇到根据不同 CPU 架构引入相应的 so 包。Android

                主要包括这几种 CPU 架构:armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips,大多数情况下只需要支持

                armabi 与 x86 的〖架构即可。

                不同的 CPU 架构决定了 app 可以运行在哪些设备上。比如我们的手机设备一般来说用的是 arm 架构,而我们的模拟器一般来说是 x86 架构。如果

                app 只支持 arm 架构的话,那么就只能安装在真机上,模拟器上安装就会不成功。如果是两种架构都支持的话,那么就是真机和模拟器都可以安装了。

                ? * res/ 目录

                res 目录是工程资源目录,存放的是∞各种资源文件♀,包括界面布局,图片,字符串等。

                ? * assets/ 目录

                assets 目录用来存放配置文件。

                ? * classes(n).dex 文件

                DEX 编译 Java 的 Class 文件,生成 classes.dex 文件。

                ? * resources.arsc 文件

                resources.arsc 文件是编译后的二进制资源文件。

                ? * AndroidManifest.xml 文件

                AndroidManifest.xml 文件是 Android

                的清单ㄨ文件,是每个应用都必须定∩义和包含的。它描述了应用的名字、版本、权限、引用的库文件等等信息。

                移动端App分类??

                app 可以分为下面这些类型

                ? 1. Native App:原生 app 手机应用※程序,使用原生的语言开发≡的手机应用。比如系统自带的计算器、闹钟就是原生 app。

                ? 2. Hybrid App:混合型 app 手机应用程ぷ序,混合使用原生的程序和 HTML5 页面开发的手机应用。现在大部分的 app 都是这种混合型的,比如微信,支付☆宝等等。

                ? 3. Web App:基于 Web 的 app 手♀机应用程序,完全使用 HTML5 页面加前端 js 框架开发的手机应用。比如在浏【览器中打开美团,这个页面就是网※页 Web App。

                Native App??

                对于 Native APP 来说,一个页面上有下面这些←类型的对象。

                ?**Activity**

                Activity 是 Android 四大组件之一,用于展示一个与用户交互的界面。Activity 是存放 View

                对象的容器◆ぷ,也是界面的载体,可以用来展示一个界面。

                ?**Window**

                Window 是 Android 中的窗口,表示顶级窗口,也就是主窗口。它提供标」准的用户界面策略,如背景、标题、区域、默认按键处理等。

                ?**View**

                View 就是一个个视图的对象。视图,是用户接口组件的基本构建块,它在屏幕中占用一个【矩形区域,它是所有 UI 控件╲的基类,如一个按钮或文本框。View

                负责图形界面渲染及事件处理。

                ?**ViewGroup**

                ViewGroup 是 Android 中的视图组。包含多个 View,也可以包含∑ ViewGroup。

                查看界面元素??

                对于 Android 来说,要查看 app 界面的元素需要用到工具帮忙,常用的工具有 uiautomatorviewer。这是 Android SDK

                自带的¤工具▆,使用起来非常简单。它可以获取到整个界面的布局,我们通过它就可以很容易的查看界面当中的元素和元素的属性了。

                元素属性??

                左侧就是我们同步⌒ 过来的界面,可以在界面上直接选择元素,然后右面就会展示界面布局和对应元素的属性。

                布局??

                了解 app 的界面布局,可以让我们做自动化▽测试的时候更容易去定位页面上的元素。

                这里的布局就是指界面元素排布的方式。界面上的布局方式都有以下这些方式:

                ? * 线性布局(LinearLayout):所有子■视图在单个方向(垂直或水平卐)保持对齐

                ? * 相对布局(RelativeLayout):每个视图的位置可以指定为相对于同级元素的位置。例如在另一个视图的左侧或下方,或相对于父级区●域的位置,例如在底部、左侧或中心对齐

                ? * 帧布局(FrameLayout):坐标原点是屏幕的左上角,位置固定,只需为控件指定□ 大小即可,用来显示一个单一的视图

                ? * 绝对布局(AbsoluteLayout):能够指定其子视图的确切位置

                ? * 表格布局(TableLayout):通过画表表格的方式来实现布局,整个页面就相当于一张大的表格,控件々就放在每个 Cell 中

                常见属性??

                ? * index:元素索引

                ? * text:显示文本

                ? * resource-id:元素id

                ? * class:类名

                ? * package:包名

                ? * content-desc:描述文案

                ? * checkable:是否可以选择

                ? * checked:是否已经选择

                ? * clickable:是否可以点击

                ? * enabled:是否可用

                ? * focusable:是否◆可以聚焦

                ? * fucused:是否已经聚焦

                ? * scrollable:是否可以滚动

                ? * long-clickable:是否可以长选择

                ? * password:是否为密码输入框

                ? * selected:是否已选□ 择

                ? * bounds:元素位置坐标

                在这些属性当中,对于测试有意义的有 text、resource-id class 和 content-

                desc,其余的暂时不用太关注。这几个☉属性在后面做自动化的时候,可以用来定位元素。

                App结构讲解就先讲到这里啦,下期我们分享adb常用命令。大家还想¤看什么内容的文章也可以留言告诉我们哦!

                ?** _?

                来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵◎盖web自动化测◥试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内∴容,课程技术涵▃盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力

                QQ交流群:484590337

                公众号 TestingStudio

                视频资料领取:;url=

                点击查看更多信息

                如何设计app的架构

                想要设计App的整体框架,首先要清楚我们做的是什么

                一般我们与网络交互数据的方式有两种:主动请求(http),长连接推▓送

                结合网络交互数据的方式来说一下我们开发的App的类型和特点:

                数据『展示类型的App:特点是页面∞多,需要频繁调用后端接口进行数据交互,以http请求为主;推送模块,IM类型App的IM核心功能以长连接为主,比较看重电量、流量消耗。

                手机助「手类App:主要着眼于系统API的调用,达到辅助管理系统的目的,网络调用的方式以http为主。

                游戏:一般分为游戏▼引擎和业务逻辑,业务脚本化编写,网络以长连接为主,http为辅。

                一般我们做的App都是类型1,简█要来说这类app的主要工作就是

                把服务端的数据拉下来给用户展示

                把用户在客户端修改的数据上传给服务端处理

                所以这类App的网络调☆用相当频繁,而且需要考虑到网络差,没网络等情况下,App的运行,成熟的商业应用的网络调用一般是如下流程:

                UI发起请求 - 检查缓存 - 调用网络模块 - 解析返回JSON / 统一处←理异常 - JSON对象映◇射为Java对象 - 缓存 - UI获取数据并展示

                这之中可以看到很明显职责划分,即:数据获取;数据管理;数据展示

                确定了职责,就ζ可以进入正题了

                1. 传统的Android App架构

                Android最原生也是最基础的架构,可以理解为MVC,Controller即是Activity和Fragment,但是这两者掌握了Android系统】中绝大多数的资源,并且在内部直接控制View,因此传统的Android App一般是以Activity和Fragment为核心,将网络模块,数据库管理模块,文件〖管理模块,常用工具类等分离成若干工具类包,供Activity和Fragment使用。

                这是比较基础的Android项目架构,市面上大部分App都是这种造ω 型

                优点:就是开发简单,以页面为导向;如果构建水平可以,项↓目就已经基本实现模块化,基于Activity,Fragment这这两个上帝般的存在,很∩多事情直接就妥了,不用绕。

                缺点:维护难,因为是以页面为导向的,有些需要共用的业务逻辑就会很烦,don't repeat your self, 你要不要repeat ?不想repeat就要写●模块,慢慢的项目就会多出一堆乱七八糟的小模块。另一方面,测试很困难,因为所有的数据处理都在Activity和Fragment,假如现在想先用假数据显示,就要直接√改Activity和Fragment的数据控制◣逻辑。

                还有个最恼火的问题,那就是业务复杂起来后Activity和Fragment的╳代码量激增,举一个例☆子,电商App的购物车,如果只是管理一下购物车中的商品,无非就是查、删、改调用,列表管理,300多行代码应该就搞定了,假如现在加︾了个优惠券提示呢?光优惠券不够,还有满减,还有凑单,要计算运费。还要能领取优惠券…… 噢,忘了一般来说★还有一个商品推荐,好了现在有两个列表①要管理了,你觉得CartActivity 2000行代码能止住么?

                在上面这些缺点的描述中,可以看到一个很大的痛点在于:Activity和Fragment不♀应该管这么多数据处理逻辑

                2. 分层架构

                如果仔细看自己的项目,可以发现绝大多数数据处理的代码是不需要使用Activity和Fragment持有的资源的(比如Context),而很多时候我◤们需要多个页面共用一套数据和请求逻辑,很经典的例子是应用中的User对象,一般来说都是全局单例。

                这些全局的数据源写多了,很容易就能想♀到将数据处理统一抽出来形成一层,向上层提供数据接口,而上层并不关心数据的来源(内存,缓存,网络),因为不用从▆ㄨActivity和Fragment拿资源而且主要工作是数据处理,所以这一层是UI无关的,大幅提升了复用性,我把这一层称为DataManager层。

                这是我一个项目的包结构

                Activity和Fragment剥离了数据处理的责任后,持有DataManager的引用,负责获取数据并展示,向DataManager传递数据,绝不进行网络请求和缓存读写。

                手机app制作流程

                手机app制作流程△从app开发前,中,后期详细给您讲解下:

                一、App开发前期

                1、明确app开发需求

                在明确需要开发一个app前,首先要问自己,为什么要做一△个app,手机app需要什么系统版本,app是给谁使用的↙,面向的用户是哪些群体等。要对开发app行业进行了解,分析app开发的可行性。

                2、确定app开发报价

                在确定完需求后,开发公司会根据沟通内容出一份开发app功能需求列表,目前普遍使用思维导图居多,可以根据这份思维导◎图增加或删除功能。敲定好功能需求后,再确认使用什么开发模式进行开发等细节。较后开发公司会核算开发所需周期和人员投入,提供一份详细开」发价格表。

                二、App开发中期

                1、确定视觉UI界面设计

                UI设计是APP正式开发的为数不多步。一般来说,app风格较好简洁大方,功能一目了然,能让用户◆为数不多眼留下好印象。效果图的制作会根据app的需求、app的LOGO、app面对人群来选择主色调,终让客户确定。

                2、着手开发app应用程序

                在确定好app界面@风格后,就可以正◤式进入app应用程序开发了。目前主流app包括两类,一类是基于安卓系统的app,另一类是基于苹果系统⊙的app。两种系统使用的开发语言和工具不同,但是流程基本都是包括前端开发、后端开发、应用接口开发、服务器环境构建等。此外还々有就是页面标注和手机适配,这是app开发项目独有的流程。这个环节是为了能够让app在不同手机上也能正常显示和使用,后期上线不会影响用户使用app的体验。

                3、进行app整体测试

                测试@ 内容包括:APP内容测试、APP性能测试、APP功能测试、APP视觉测试、对于BUG调试修复。如果测试ω问题需要及时修复,直到测试结果通过,App的整体开发才能完成。可以多邀请一些内部人员进行测试,充分优化和测卐试app的体验度和稳定性。

                三、App开发后期

                1、App打包上线发布

                全部做好之后就可以在各大应用市场发布上线♀了。APP上线审核,俱备苹果开发者账号的前①提下,一般苹果的APP store审核大概需要一个星期,安卓审☆核在3天左右,甚至更快,所以我们要注意把握好这个时间,不要让审核时间耽误上线时间。而且,有个别情况会导致审核失败,需要修改资料重新提交,这样就会导致审核周期◥更长。

                2、App后期维护升级

                完成开发上线后,app开发公司根据合同要求,交付相关内容,合作完成。至于后◣期需不需要维护升级得根据双方合同要◆求。

                企业APP开发流程是什么?

                在企业中,整个的开⊙发的过程,从头到尾,大致可以分成五个大的阶段,分别是需求,设计,编码,测试,交付这五个阶段,这当中,位于软件公司内部管理的过程,详细划分又□可以分为7步,如下所列:

                相关系统分析员向用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有↘些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。

                系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功№能需求文档。这次的文档会清楚利用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的▃界面和界面功能。

                开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统】的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。

                在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述∑ 实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子▃程序)的设计考虑,以便进行编码和测试。

                做app的公司一般的组织构架是怎样的?

                大致分为:

                财务部:公司的收♀入,支出,发工资,跟钱有关的;

                人事部:负责公司人员的招入,迁出,人员变化都要这个部门来做;

                行政部:负责公司整ξ体的战略方向,策▼划活动等等;

                产品市场部:负责调研市场需求,产生需求,以及产品对市场的冲击等等;

                开发部(安卓开发〗部:开发安卓应用,ios开发部:开发苹果应用,服务器后端开发部:开发app所需要的服务器端数』据支撑):负责按产品市场部的需求开发产品;

                测试部:负责开发部程序〖的测试。这个工作也有可能直接由开发部负责程序测试,产品ξ 市场部负责功能性测试。

                扩展资料:

                关键因素:

                基于企业产品独特性特点开发App,是企业开发App的一项原则。再比如汽车、笔记本电⌒ 脑这样产品,可能适合做360度的产品展示,在视觉上延长体验时间和以细节加强『用户兴趣。“汽车产品】方面,我们也曾经有过这样一个案例。

                客户要求系列产品全方位展示,我们便将不同款式、颜色、亮点的超清■图片像视觉大片一样包含在App里,同时,根据汽车的不同特性设计相应展示形式,比如为体现某款车车速飞快,图片先是像漫画般一帧帧排列。

                但滑动一下∮按钮,这组图片便可ぷ以呈现汽车飞驰的视觉效果。”中国无线营销公司、飞拓无限销售及市场营销高级副总裁叶保伦说道。

                参考资料来︼源:百度百科-企业APP

                app开≡发的结构的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于app框架结构、app开发↓的结构的信息别忘了在本站进行查找喔。

                扫码二维码