扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
我们经常会用Mac系统创建IOS应用项目,但是如何在Mac系统中创建Android应用项目呢?下面我给大家分享一下。
10余年的康巴什网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整康巴什建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“康巴什网站设计”,“康巴什网站推广”以来,每个客户项目都认真落实执行。
工具/材料
Android Studio
首先我们在Mac系统中要安装Android Studio软件,然后点击Start a new Android Studio project选项,如下图所示
接下来进入项目名称设置界面,这里需要给项目起一个名字,如下图所示
然后需要我们选择一下创建的Android应用运用哪个SDK,如下图所示,我建议选择比较稳定的版本
接下来会进入主界面样式选择界面,我们选择空模板样式即可,如下图所示
接着给主界面文件起名字,这里默认是MainActivity,我们不需要设置,默认即可,如下图所示
设置完以上信息以后,我们就可以看到Android Studio就会进入项目创建进度了,如下图所示
接下来创建好项目以后,默认主界面就会显示项目列表,如下图所示
如果想运行项目的话我们点击顶部的运行按钮即可,如下图所示
最后Android Studio就会启动Android手机模拟器来展示我们项目的信息了,如下图所示
作为一个单工程撸到底的开发人员,想试着将项目进行组件化改造,说动就动。毕竟技术都是写出来的,看着文章感觉懂了,但是实际开发中还是能遇到各种各样的问题,开始搞起来。
一直使用单工程撸到底,项目越来越大导致出现了不少的问题:
将 一个程序按照其功能做拆分,分成相互独立的模块 ,以便于每个模块只包含与其功能相关的内容,比如 登录模块 、 首页模块 等等。
组件指的是单一的功能组件,如 登录组件 、 视频组件 、 支付组件 等,每个组件都可以以一个单独的 module 开发,并且可以单独抽出来作为 SDK 对外发布使用。可以说往往一个模块包含了一个或多个组件。
组件化基于可重用的目的,将应用拆分成多个独立组件,以 减少耦合 :
组件依赖关系是上层依赖下层,修改频率是上层高于下层。先上一张图:
基础公共模块,最底层的库:
这只是个大概,并不是说必须这样,可以按照自己的方式来。比如:你觉得基础组件比较多导致project里面的项目太多,那么你可以创建一个lib_base,然在lib_base里面再创建其他基础组件即可。
这样尽可能的减少变动项,当然这仅仅是个建议,看个人习惯吧。
因为咱们创建的是一个module,所以在AndridManifest中添加android:exported="true"属性可直接构建一个APK。下面咱们看看如何生成不同的工程类型。
在 AndroidStudio 开发 Android 项目时,使用的是 Gradle 来构建,具体来说使用的是 Android Gradle 插件来构建,Android Gradle 中提供了三种插件,在开发中可以通过配置不同的插件来构建不同的工程。
独立调试 :设置为 Application 插件。
集成调试 :设置为 Library 插件。
isDebug = true 独立调试
根据上面动态配制插件的经验,我们也需要在build.gradle中动态配制ApplicationId 和 AndroidManifest 文件。
有什么不同?咱们一起看看具体内容。
isDebug = true
isDebug = false
当我们需要进行插件版本、依赖库版本升级时,项目多的话改起来很麻烦,这时就需要我们对Gradle配置统一管理。如下:
具体内容
Android 中的界面跳转那是相当简单,但是在组件化开发中,由于不同组件式没有相互依赖的,所以不可以直接访问彼此的类,这时候就没办法通过显式的方式实现了。
所以在这里咱们采取更加灵活的一种方式,使用 Alibaba 开源的 ARouter 来实现。
文档介绍的蛮详细的,感兴趣的可以自己实践一下。这里做个简单的使用。
先在统一的 config.gradl e添加版本等信息
因为所有的功能组件和业务组件都依赖lib_common,那么咱们先从lib_common开始配制
lib_common
其他组件(如collect)
你要跳转的 Activity
这里是用 module_main 的HomeFragment跳转至 module_collect 的CollectActivity界面,两个module中不存在依赖关系。 "/collect/CollectActivity" 在上面已注册就不多描述了。
效果如下:
这里是用 module_main 的MineFragment的Adapter跳转至 module_webview 的WebViewActivity界面,两个module中同样不存在依赖关系。
启动方
这里传了两个参数 url 和 name 到WebViewActivity,下面咱们看看WebViewActivity怎么接收。
接收方
上效果图:
搞定,更多高级玩法可自行探索。
W/ARouter::: ARouter::There is no route match the path
这里出现个小问题,配置注释都好好的,但是发送发无论如何都找不到设置好的Activity。尝试方案:
后来修改Activity名称好了。
界面跳转搞定了,那么数据传递怎么办,我在module_main中使用悬浮窗,但是需要判断这个用户是否已登录,再执行后续逻辑,这个要怎么办?这里我们可以采用 接口 + ARouter 的方式来解决。
在这里可以添加一个 componentbase 模块, 这个模块被所有的组件依赖 。
这里我们通过 module_main组件 中调用 module_login组件 中的方法来获取登录状态这个场景来演示。
lib_common
所有业务组件和功能组件都依赖lib_common,所以咱们直接在lib_common添加依赖即可
module_login
实现接口
运行结果:
本文介绍了组件化、组件分层、解决了组件的独立调试、集成调试、页面跳转、组件通信等。
其实会了这些后你基本可以搭建自己的组件化项目了。其实最大的问题还是分组分层、组件划分。这个就需要根据你的实际情况来设置。
本项目比较糙,后面会慢慢完善。比如添加Gilde、添加MMVK、添加Room等。
项目传送门
工具/材料
电脑
android studio
01
从网上下载并安装Android Studio然后打开它。现在,你准备好开始你的第一个Android应用程序!
首先是这个android项目的项目名,在这里进行输入即可
注意,这里我们使用的android studio的版本为2.2
一直下一步,等待一定的时间,这取决于你机器的配置,android studio最为谷歌官方唯一指定的android项目开发ide,具有超高度的功能集合性,同时后面我们会看到android studio采用和eclipse不同的编译方式,即Gradle编译,以及采用云资源模式(服务器全在海外,部分功能需要翻墙才能使用,醉了),所以,不要对其卡慢抱有不满情绪.
02
选择对应的android sdk版本,android像ios一样,也有很多分类版本了,从低到高,还有像android wear(手表), android TV(电视),android auto(车载)等各种版本,选择你要将这个项目跑到什么设备上边去,以及系统的版本,这里我们选择android手机项目,版本可以选择4.0,目前4.0基本就是最低版本,当然微信,qq,支付宝之类的都是一直支持到2.3版本的
03
这里是android项目的布局文件,目前因为我们这个项目只有一个主窗口,这个布局文件就是属于主窗口的,这里记录的这个窗口中有哪些控件,以及这些控件的位置和排列模式,像TextView就是一个文本控件,而RelativeLayout则是布局控件,用于控制控件的布局。
04
这就是穿着中的gradle编译的编译配置文件了,里面包含了编译中的各种配置选项,对于从eclipse中转过来的人来说,要搞懂这里的各种配置可是要费不少脑子的哈!
05
这是android项目的清单文件,这里包含了这个应用程序的图标设置,以及activity等,activity是android四大组件之一,可以直观理解为我们看到的一个个的窗体,凡是需要显示出来的activity,都需要在这里注册写明
06
这里是窗口的java主类,android的主要编程语言是java语言,当然也有支持c++编程的ndk,以及现在很火的前端脚本编写android项目的方法,这个类表示主窗口,OnCreat()方法会在这个界面被启动的时候执行。
07
点击这里即可运行这个由系统为我们编写好android项目了,没错,这已经是一个完成的android项目,只是比较简单而已,但主要部件都不少。
08
我们启动的应用就是跑在这里的模拟器当中的,我们可以创建自己的模拟器,自由的对模拟器的配置进行自定义,包括模拟器的系统版本
09
完美,我们的第一个应用程序已经跑起来了,虽然只是显示了一个Hello World文本,不过怎们样都算完成了一个android应用程序,后续只要对其进行打包签名,混淆加密后即可发布到应用市场供别人下载使用.
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流