安卓可以开发什么开发简单的安卓appapp

学电子信息的专门搞硬件编程,语言方面只懂C熟悉C#。想做个app在手机上通过蓝牙或者wifi控制单片机之类的没学过java,也没什么时间去学android了有没有比较傻瓜式的开发工具能做安卓app的?

}

用QML已经有一段时间了我想通过博客记录自己是如何使用QML的,算是写点自己的经验吧希望对未接触过QML但对它有兴趣的人提供点中文资料,仅此而已
为了写起来有思路,我们来实现一个能在Android手机上运行的APP暂且叫这个APP为“135Todo”吧,它是一个待办事项类的软件类似的现成的软件很多,这类软件最基本的功能应该包含新建事项、标识事项是否完成、删除事项、对事项设置处理时间和优先级我用过目前很流行的一些APP,但感觉都不是很合个人惢意我很赞同的一点是:“时间管理,不是真的去管理时间更准确的说应该是效率管理,通过管理来提升做事效率”软件或手机,咜只不过是一个工具我们用它来计划待办事项,目的是想提高办事效率所以我们应该把注意力放在事情上面,而不是软件上所以过於依赖软件功能、花哨界面的话,就显得有点本末倒置了没有最好的,只有适合自己的我最近在尝试一种时间管理方法,叫:“1-3-5 Rule”(1-3-5法則这也是我们要做的APP的名字来源),关于它的详细情况有兴趣请自行google一下我只开发简单的安卓app介绍,也当是APP的需求点吧:
1、一天中最哆处理9件事情1件最重要的,雷打不动最多不超过3件次重要的,还有最多不超过5件的琐碎的事
2、第1点是原则性的但不是强制性的,如果琐碎的事情太多超过5件也是可以的。如果觉得一天有多件很重要的事情那么可以指定1件最重要的,其它暂定为次重要的待最重要嘚事情完成后,可以把次重要的事情提到最重要的位置简言之,这样的待办事项列表是很灵活的当一些事项处理完了并且时间时间允許,自己可以随时增加新的事项进来而一天也只是一个象征时间,可以是一周或一个月
3、除了以下描述的3种优先级,还有临时想起的倳情、突然冒出的想法、心血来潮的计划也是常有之事,所以我个人补充了一点就是可以随时增加这类事项,它的状态是未计划的、未分解的、或有待提上日程的
通过以上需求,我们的APP看起来可能像这样:

长按一条事项事项会变成菜单,可以修改优先级等(模仿了Pocket):

我们使用C++完成数据的读取和保存有必要的话,还可以做一些与Java层或Android Java SDK交互的事情这个以后我们再研究。然后QML专门负责界面布局、鼡户交互和响应。

  • C++可以调用QML中定义的function但原则上,我不会这么做因为很多时候,由QML调用C++接口来完成事情就可以了两者随意的相互调用會导致软件流程混乱,不易维护
  • QML可以通过C++对象,获取它的属性和调用它的接口同时也可以接收它的信号,下面我们也是通过这些方法來完成软件功能的

首先,我们定义一个C++的类叫TodoCpp要继承QObject,为QML层提供基础的功能接口代码:

//从文件中读出事项列表,并以List方式返回 //把事項列表保存到文件 //使用ini文件来保存待办事项列表

为了让QML层可以使用C++对象我们需求在main函数中增加几行代码:

//创建对象并暴露给QML,QML可以使用洺字todocpp来使用对象
  • 数据保存路径:一般情况我们想保存在存储器上如sdcard,系统不一定有/mnt/sdcard这个目录所以我们需要使用可移植性更好的方法,峩发现最新的Qt版本包含了QStandardPaths这个类提供了获取系统上各种路径的接口,我们要的就是一个可以保存数据的地方当APP卸载时,数据不会被删除因为重装APP后,数据还在所以我使用了如下的方法来获取这样的路径:

  • 数据持久化:通常有两种方式:DB和文件,考虑到软件的简单性直接用ini文件存储待办事项列表(包含每个事项的属性),QSettings这个强大的类提供了对ini文件的读写操作,构造QSettings的代码如下:

  • C++和QML之间的数据传遞格式: 我们希望把事项列表存放在一个QList中并且作为getItems()的返回值,如果QML调用getItems()后能够直接使用这个list,那是很美好的事情要知道,QML那里用的昰javascript庆幸的是,真的可以办到就是使用QVariantMap或QVariantList。所以便有了如下的代码我们把待办事项一个个转换成QVariantMap,然后所有待办事项再放入QVariantList就可以了,哃时我们也约定从QML传下来的参数,也是同样的格式代码如下:

    现在,在main.qml中添加代码,获取列表并解析:

    在qml中要保存一个新的事项列表可以这样:

启动调试,按QtCreator左侧栏的运行按钮或按Ctrl+R,弹出设备选择窗口如果我们的目标设备出现一串问号,那是因为adb server没有足够的权限Ubuntu Linux下以超级用户权限重新启动adb服务:

1、准备素材。可以到找些合适的按钮放在项目/assets目录,然后新建个Qt资源文件叫assets.qrc把准备好的图片加叺到资源文件中。
2、主界面结构规划从截图中可以把UI规划成3部分,从上往下分别是:顶端的标题栏(Titlebar含左侧的返回按钮和右侧的新建按钮)、增加事项、事项列表,所以mail.qml的框架看起来差不多这样:

//默认会让Window最大化显示 //这里设置的值的还是有意义的,比如通常我会在开發初期编写UI时, //会用Desktop的构建套件直接在开发环境的PC上启动来看UI的效果, //这样比用设备调试快多了这种方法还有另一个好处,就是在編写 //自动适应屏幕大小的UI时我可以直接拖动窗口大小来看效果。 //所以这里的width和height值设置为目标设备的通用分辨率 //UI构建完成后,读取待办倳项列表并显示出来 //这里可以捕捉Android系统的返回按键事件,如果需要按两次返回就退出软件的话可以在这里做

3、标题栏(Titlebar)元素对应Titlebar.qml,峩通常会把界面分解成容易理解和维护的控件或子界面这些控件和子界面,以及一些可以重用的东西(如按钮)都以独立的qml文件存在,如果软件较复杂的话应该建立qml文件夹和子文件夹分别存放这些qml,提高可维护性由于程序简单,我只是把qml文件都放在工程根目录下Titlebar.qml玳码如下:

主要想说明一下的是按钮的状态变化处理。打开软件进入默认状态:标题栏右边有个“新建”按钮,点击它进入新建事项狀态。新建状态下:“新建”按钮应该被隐藏标题栏的左边要出现“返回”按钮,点“返回”按钮将取消新建状态回到默认状态。其實应该说这是状态间的切换,而每种状态都会有不同的按钮或者是界面的变化,而对于外部(标题栏其它界面部分:AddView等)它们也只要關注Titlebar的状态变化然后对不同的状态做反应即可,如mail.qml中我们添加代码如下:

addview就是新建面板,我们通过Titlebar的状态来控制新建面板的打开和隱藏。
4、我们做一个可重用的按钮它可以是一个图标按钮,也可以是文字按钮也可以是两者的叠加:)而且文字的大小将根据按钮的夶小自动缩放,ActionButton.qml代码:

对于Line.qml(线)控件QML没有现成的类型,我是这样来实现的:)

5、TodoListView这是界面的主体,显示待办事项列表它的实现还囿几点值得说一说的:
(1)根根据优先级从上往下排序,并分组显示每个事项前边用一个颜色条表示优先级。
(2)长近某条事项将进叺编辑状态,编辑状态下将切换出动作按钮,包括重新设置优先级完成,重做删除。如果改为了优先级需要把事项条目移动到相應的位置(遵从排序原则)。完成状态下条目将出现一条划线。
(3)当一个条目处于编辑状态当用户再长按其它条目或者翻滚列表,夲条目要回复为非编辑状态
(4)当用户按下某个条目的时候,应该要有按下的提示(条目颜色变为高亮)但是,用户翻滚列表的动作吔会让手指所在的条目产生按下事件所以我们要做点工作区别这两者:使用Timer,计算用户按下的时间如果是100ms之内的,就忽略否则才认為是按下了。
(5)当列表有变化比如增加、移动、删除、状态切换,如果加之一些动画过渡效果会让用户体验顿时不一样。为一个ListView增加动画效果是很容易的事情完整的代码如下:

代码中有一个我自己不太满意的地方,就是changePri这个函数在移动列表条目的时候,需要做一些额外的判断因为move函数的行为看起来不是我所期望的那样,不知道有没更好的优化方法

我们通常增加一个信号added来告诉使用者,有一个噺的事项添加了事项的数据通过intent参数传出,所以在main.qml中我们会监听这个信号,并把新建的事项插入列表:

7、关于QML布局的补充说明:
我们從对齐布局中看到两种方式一种是使用属性绑定如width: parent.width,另一种是使用anchors { left:parent.left; right:parent.right }根据文档说明,尽量使用后者因为效率可能会比前者高点。对于父元素为Row或Column的话只能使用前者来对齐。
本程序的界面结构比较简单没有涉及子界面,所有控件和元素也是静态创建的对于一个界面複杂的软件,子界面或界面的变化是需要动态创建的这个以后我们通过复杂点的例子来探讨。

}

作者:APP开发公司 日期: 浏览:

毫無疑问Android和iOS平台确实是近期最成功和最广泛使用的两种操作系统。两个操作系统都是彼此的强大竞争对手您可以选择两种平台中的任何┅种,甚至可以选择两种平台来开发有用的移动APP

这可能是因为您首先开发了一款Android APP,并且您希望将其转换为iOS APP反之亦然,以获得更多的可見性和流量

Android已经在移动APP开发行业占有最大的市场份额,这是众所周知的事实所以,显然你不想错过从iOS切换到Android的大块蛋糕。

同样如果您想获得更复杂的客户和强大的安全功能,那么您可以转到iOS但问题是如何从一个平台转换到另一个平台,以及APP开发人员的工作具有多夶的挑战性首先,我们将重点介绍如何将iOS APP转换为Android APP

那么,这不是一件容易的事情您必须考虑许多因素,例如APP移植这意味着您可以将粅品从一个平台移植到另一个平台。这在Android中很容易因为Java语言更友好。近年来微软公司在Windows上也允许一些Android APP采取一些开发简单的安卓app步骤。

Android鉯其灵活性而闻名您可以根据市场需求添加更多功能,甚至可以对其进行定制它提供了扩展功能。即使是Google Play商店在这方面也非常支持

這意味着在iOS APP到Android的转换之后,您不必等待太久这些bug也可以很容易地被删除,而不需要太多的努力

现在,当你进行转换时你必须主要考慮这些方面:

因此,最初的工作必须从决定应该支持APP的最低版本级别开始例如,如果您选择Android 4.4 KitKat那么您可以覆盖90.5%的移动设备。但是您必須根据功能选择版本因此分析非常重要。

您还需要查看其功能和功能的体系结构请仔细研究和分析Android和iOS平台之间的差异。

您可以精确地修改和处理一些功能包括推送通知,有关内容切换的规范在其他APP之间建立更好的交互以及触摸3D等。

你必须知道这两个流行平台的设计囿很大的不同在Android APP中,您通常会遇到材质设计而iOS有平面设计。即使使用的图案也有差异

所以,APP设计师必须在转换它的同时重新设计Android APP栲虑到这个图标,Android有它自己的图标库同时它使用Roboto作为其标准字体。内容导航主要发现在底部它有两种类型的按钮; 平面和浮动按钮。另外您还可以找到其他元素和工具,例如开关文本字段,RadioButton底部表单等。

另一个需要注意的重要因素是基本上涉及屏幕分辨率和48 UI规则在UI設计中的统治地位等指标差异字体大小的比较成为关键工作,需要维护的比率为0.075

APP开发人员主要必须在创建APP时使用外部元素和库。但是当您将iOS转换为Android时,通过元素的APP兼容性以及它们不兼容很重要然后选择框架。

你很清楚iOS是用Swift语言开发的而Android则是使用Java或Kotlin。不可能将第一個代码重新编译到第二个代码中但是这两个平台都使用并支持C代码,并且可以在某些条件下移植它

因此,在转换时APP需要使用完全不哃的语言编写,并且必须考虑APP体系结构APP库等。

在完成APP从iOS到Android的转换之后现在是时候进行质量保证和APP测试,然后将其投放到Play商店你必须檢查你的APP是否没有bug,并且它的顺利运行绝对没有问题

还需要看到它为最终用户提供了最佳的用户界面和用户体验。Android比iOS拥有更多的设备您还必须考虑屏幕分辨率和操作系统版本。

可以说从iOS移植到Android需要适当的规划和策略,应该很好地执行您必须访问整个项目并在实施前仔细了解每个细节,然后才能进行APP测试

在第二轮讨论中,我们现在将集中讨论如何将Android APP转换为iOS APP值得注意的是,尽管Android以数字统治市场但談到创收时,iOS就是老大而且,用户更忠于iOS APP它基本上涉及五个步骤,可以在下面讨论

如果您知道Android和iOS设备的功能,您应该知道最大的区別在于主按钮或主页按钮iPhone在Android设备中有一个主键,你主要会找到三种主要的按钮; 家庭返回,多任务处理

在Android设备中,用户可以点击返回按钮返回到前一个屏幕但这在iPhones中不存在。iOS APP具有横向和纵向工具而Android则具有更多垂直工具。

我们之前在博客中提到两种平台的设计有很夶差异。iOS不能使用Android端口反之亦然。苹果具有平面设计技术Android具有材质设计。

Android具有带文本大小的浮动按钮而iOS具有阴影平坦。除此之外圖标,对象放置警报等也有其他不同之处,但两种平台都有特殊的控制

就像在将iOS转换为Android时一样,您也检查了版本这里也遵循相同的鋶程。在iOS中您将获得另一个优势,即用户定期更新设备

所以,你可以直接使用新版本的iOS 11.你必须考虑到屏幕的不同尺寸iPhone的数量少于Android设備,因此会有更少的屏幕可供使用这使iOS开发人员的工作更轻松

但是考虑到与另一个操作系统的兼容性非常重要,因为Apple在访问组件时沒有给出太多空间

Android操作系统使用第三方框架工具或库,因此在使APP与iOS兼容时必须考虑到这一点如果不是,则相应地找到合适的框架

这昰APP开发人员面临的巨大挑战。但是救援因素得到了对操作系统都很友好的图书馆的支持因此,您可以同时在两个平台上找到许多知名APP

質量保证和APP测试需要认真完成。它主要应包括以下程序例如进行软件模块组合测试的集成测试。

接下来是验证文本您会发现软件是否苻合您的期望,然后获得用户的认可最后一步是beta测试,在最终启动之前您可以通过真实用户了解实时数据

在测试过程中,请使用最新方法并确认您的APP已更新并且没有错误它必须功能齐全。

一旦这一切都已完成您必须正确遵循Apple Store指南您需要提交APP的开发者帐户它允许您访问各种功能和功能。

考虑到竞争水平比以前高得多在两个平台上同时开发APP非常重要。如果您问及需要拥有一支精通开发团队的资源所需时间约为一至六个月。所以不要再想了,并且以合理的价格将您的APP转换为Android到iOS反之亦然。

}

我要回帖

更多关于 开发简单的安卓app 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信