背景

为了让大家对Android开发流程有个整体的认识,我们用一张流程图来描述下一个客户端从开发,测试,到打包,上架的完整流程,具体流程如下图所示:

开发前准备

1: 开发工具

JDK

因为Android本质上也是用的Java语言开发,所以编译环境也需要用到Java虚拟机,在开发之前,我们需要下载JDK,并配置JDK环境

JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

同意协议后,下载相应版本的JDK,具体的环境配置教程可自行百度,网上很多指导教程,这里就不详述了

Android Studio

工欲善其事必先利其器,在准备开发之前,我们同样需要下载和安装Android专业的IDE开发工具,目前针对Android开发主要有两款IDE,分别是Eclipse和Android Studio,但是目前主流用的基本上都是Android studio,下面我们就主要分享一下Android Studio的安装与配置。

Android IDE和插件下载地址:https://www.androiddevtools.cn/

IDE的版本,可以根据大家的系统和电脑配置进行选择,具体的下载和安装流程,相信应该难不到大家,下面主要和大家分享下IDE的几个重要配置。

  • Android SDK配置,开发之前一定需要先配置这个SDK路径,否则编译运行的时候会报错提示。

  • gradle配置,这个地方主要配置gradle编译的路径

项目开发

为了引导大家入门,下面我们就以一个简单的示例来跟大家分享下Android开发的流程和步骤

1:新建项目

新建完项目之后,我们通过上图来分析下Android工程的项目结构:

  • libs文件夹主要用于存放项目或者模块需要的第三方依赖包文件
  • main->java目录下主要存放项目的开发代码
  • res下-mipmap和drawable文件夹主要用于存放一些UI设计的资源文件和自定义布局文件
  • res下-layout文件夹主要用于存放UI布局页面文件
  • androidMainfest主要是项目或者模块的配置文件,主要用于注册一些Activity/服务或者广播等配置
  • build.gradle主要是项目或者模块的配置文件,主要用于配置项目的版本和编译打包文件等脚本文件

2:项目架构设计

项目采用MVP设计模式,针对MVP具体的介绍这里就先不展开描述了。

其中业务处理逻辑全部放在P层,像App中网络请求模块全部都放在P层来处理,

override fun requestHomeData(url: String) {mModel.requestHomeData(object : MySubscriber<HomeDataRespModel>(mView.context) {override fun _onNext(t: HomeDataRespModel?) {Logger.d(Gson().toJson(t))if (t!!.isOk()) {//解密 encryptDatamView.requestResult(t)} else {mView.requestFailResult(t.errorMsg)}}override fun _onError(message: String?) {Logger.e(message)}}, url)
}

view层,负责UI上数据的展示和刷新

override fun initViewsAndEvents() {super.initViewsAndEvents()recycler_home.layoutManager = LinearLayoutManager(this)recycler_home.isNestedScrollingEnabled = falseadapter = HomeDataAdapter()recycler_home.adapter = adapteradapter!!.setOnItemClickLitener { v, dataModel, position ->mBundle = Bundle()mBundle!!.putString("title",dataModel.title)mBundle!!.putString("url",dataModel.link)openActivity(WebViewActivity::class.java,mBundle)}refresh_home.autoRefresh()refresh_home.setOnRefreshListener { refreshlayout ->isRefresh = trueadapter!!.clear()currentPageNum = 0//上拉刷新requestData()refreshlayout.finishRefresh(1500)}refresh_home.setOnLoadmoreListener { refreshlayout ->isRefresh = falsecurrentPageNum++//下拉加载requestData()refreshlayout.finishLoadmore(1500)}refresh_home.isEnableLoadmore = truerefresh_home.refreshHeader = WaterDropHeader(this)refresh_home.refreshFooter = BallPulseFooter(this).setSpinnerStyle(SpinnerStyle.Scale)
}private fun requestData() {mPersenter.requestHomeData(ConstantConfig.URL_REQUEST_HOME_DATA + currentPageNum + "/json")
}override fun requestResult(homeDataRespModel: HomeDataRespModel) {try {adapter!!.appendToList(homeDataRespModel.data!!.datas)} catch (e:Exception) {Logger.e(e.message)}
}override fun requestFailResult(errMsg: String) {ToastUtils.showShort(errMsg)
}

3:打包发布

编译项目后,可以直接选择Build Apk,然后直接取release目录下的apk包,提供外部安装使用。

最后我们来看下最终的效果实现图

App主页

App内容详情页:

最后我们附上项目的开源地址,有兴趣的朋友可以clone看下

项目Git传送门:https://github.com/octopusy/AndroidBaseProject

项目打包发布

项目配置打包

我们在生成jks签名证书之后,可以直接在模块的build.gradle配置文件中配置,这样打包出来之后的App包则是直接签名后的包,可直接提供外部安装使用。

渠道发布

软件著作软很重要,很多应用市场都会要求上传软件著作权电子扫描件

1、腾讯应用宝 :http://open.qq.com (需要软著)

需要的素材规格:

(1)应用小图标:尺寸16x16,大小20K以内,PNG格式的图片

(2)应用图标:尺寸512*512,大小200K以内,PNG格式

(3)应用截图:2-5张截图(尺寸保持一致),单张图片不超过1M,截图不能小于320*480像素,推荐480 * 800像素,JPG、PNG格式 。

(4)版权证明:应用上架必须提供软著版权证明,否则无法上架,请参考版权证明指引,大小2M以内,支持JPG/PNG格式的图片

注意:腾讯应用宝上传的apk需要经过加固,可以使用它推荐的乐固加固软件,加固之后还需要在本地安装一个乐固的签名工具 ,给加固过的安装包添加一个签名,签名是在签名工具里生成的,下载签名工具到电脑安装后打开,之后的具体步骤如下图:

  • 首先需要输入云API密钥才能登录 如何获取密钥?

  • 登录完之后现在辅助工具这里生成签名文件和相关的签名信息

  • 然后再回到加固

2、360手机助手:http://dev.360.cn (需要软著和资质许可证明)

需要的素材规格:

(1)应用图标:尺寸:512*512PX,圆角半径弧度:70PX,图片格式:PNG。

(2)应用截图:4-5张截图(尺寸保持一致),支持JPG、PNG格式。截图尺寸要求:不小于800 * 480(480 * 800),单张图片不能超过3M。请去除截图中的顶部通知栏。

(3)纸质软著登记证书:可上传纸质软著登记证书或软著受理函,要求:必须加盖公章,格式jpg、png,大小不超过1M。

(4)资质许可证明:相关版权材料均可压缩为RAR、ZIP格式上传 ,JPG、PNG或压缩包格式,图片大小不能超过1MB,有多个文件请打包为RAR、ZIP格式,大小不能超过10MB。

3、华为:http://developer.huawei.com/consumer/cn (需要免责函)

需要的素材规格:

(1)应用图标:尺寸:216*216px,图片格式:PNG

(2)应用截图:最少3张截图,支持JPG、JPEG或PNG格式,建议分辨率:450*800(宽高比为9:16),单张图片最大为2M。

(3)应用版权证书或代理证书:免责函模板: 免责函模板 JPG、PNG、BMP格式,不能超过4MB 应用版权证书或代理证书详细说明请参考版权资质说明

4、阿里应用商店/豌豆荚/PP助手:http://open.uc.cn (需要软著)

需要的素材规格:

(1)应用图标:png格式图标,背景透明且带圆角,建议上传分辨率512px * 512px(最低256px * 256px)

(2)应用截图:至少4张截图,支持jpg或png格式,不可上传iOS应用截图,分辨率请勿小于480 * 800或800 * 480

(3)证明材料:最多上传六张证明材料

  • 请提供软件著作权扫描件,电子版软著提交至电子版权证书处,纸质版软著提交至证明材料处,提交电子版软著后可不用提交纸质版软著 快速申请软件著作权
  • 若未申请软件著作权,请下载 开发者声明,填写后提交扫描件
  • 所有文件上传仅接受JPEG/PNG格式(*涉及到新闻、股票、医疗、彩票、银行业务等还需要提供相应版权证明)

5、百度手机助手/安卓市场/91助手:http://app.baidu.com

需要的素材规格:

(1)应用图标:JPG或PNG格式的图标,尺寸为512×512px,容量小于800KB

(2)应用截图:4到6张最小尺寸为480px*800px的png格式或jpg格式的图片,每张照片不得超过1M

6、小米:https://dev.mi.com

需要的素材规格:

(1)行业资质证明:ICP备案号 、软件著作权书、ICP证或ICP备案截图

(2)应用截图:至少3张720 * 1280或1080 * 1920 应用图片信息如需使用到手机外观图片,禁止使用 iPhone 或其他品牌手机外观素材,应用图片信息中系统状态栏禁止存在与本应用无关的第三方应用图标

7、vivo:https://dev.vivo.com.cn

需要的素材规格:

(1)应用图标:支持jpg/png格式,尺寸要求长等于宽,不低于256 * 256,不超过512*512,大小50k以内,仅支持直角图标

(2)应用截图:3-5张清晰截图。尺寸为竖图480*800,格式为jpg/png/jpeg,每张图片尺寸一致,单张图片不超过2MB

8、oppo:http://open.oppomobile.com (需要软著或者承诺函)

需要的素材规格:

(1)应用图标:尺寸:512*512px,图片格式:PNG,小于1M

(2)应用截图:3-5张截图,支持JPG、PNG格式。截图尺寸要求:1080*1920,单张图片不能超过1M。请去除截图中的顶部状态栏的通知图标,图片中不得使用其他品牌的手机作为边框或宣传图

(3)软件版权证明:提供承诺函并上传在其他主流市场(如:应用宝、小米、 华为)后台审核上架的截图。PS:特殊分类必须要提供软著哦(相亲、交友、抢红包、彩票、直播等,具体特殊类别可参考《https://open.oppomobile.com/wiki/doc#id=10022应用资质审核规范》。应用承诺函模板请点击参考:《https://open.oppomobile.com/wiki/doc#id=10005应用承诺(免责)函模板》

9、三星:http://support-cn.samsung.com/App/DeveloperChina/Home/Index

需要的素材规格:

(1)应用图标:PNG 格式 512 X 512 像素 小于 1024 KB

(2)应用截图:JPG/PNG 格式,最小 320 像素,最大 3840 像素,图片比例 2:1,至少需要4个图片,最多可上传8个。

(3)邮箱

Android客户端入门开发相关推荐

  1. 爱奇艺Android客户端软件开发实战(全套)

    Android客户端软件开发_10.下载模块的流程分析以及详细流程图等.avi 141.2M Android客户端软件开发_11.多线程断点续传分析和流程图.avi 91.3M Android客户端软 ...

  2. 至简微博Android客户端APP开发以及源码

    前言 至简微博客户端APP根据微博开放品台API获取微博内容,UI展示 主要功能点: 好友微博列表 公共微博列表 微博详情 用户个人信息 微博个人信息 微博评论列表 每日一图 粉丝列表 关注列表 关注 ...

  3. android wear打开卡片,Android Wear入门开发之卡片CardFragment

    手持设备上面有一个CardView的东西(如果你不知道自行度娘,这不是我们重点),卡片类的东西,这是android5.0+ Api的控件,可以做出很漂亮的卡片的风格,之前我写过手持设备CardView ...

  4. android客户端功能,推荐一个功能齐全的【玩Android客户端】

    玩Android客户端 为什么开发这个应用 wanandroid网站不错,有一批码友更新学习心得,而且也有开放的api.做个客户端方便小老弟,也可能是老大哥,刷文章,也有可能是刷妹子,刷开眼视频: 试 ...

  5. 行代码入门python_新浪微博Android客户端开发视频教程(36讲)

    教程名称:新浪微博Android客户端开发视频教程(36讲) 课程目录: [IT教程网]新浪微博Android客户端介绍 [IT教程网]新浪微博Android客户端相关资料 [IT教程网]新浪微博An ...

  6. [置顶]树莓派Android Things物联网开发:入门及资料汇总

    [转载请注明出处: http://blog.csdn.net/leytton/article/details/77848430] <树莓派Android Things物联网开发>系列文章专 ...

  7. 新浪微博开放平台开发-android客户端(2)

    引言 最近不是太忙,花了一些时间学习android的应用开发.经过两个星期的学习,学习的同时还写了很多的demo示例,可以从基本控件及基本动画效果等示例demo集合大放送,持续更新下载. 从这个星期开 ...

  8. 基于Android平台淘宝网手机客户端实战开发(共四季,涉及各类技术应用)

    本课程共分四季,学习本课程需要拥有Android方面一定的技术基础, http://www.ibeifeng.com/goods.php?id=176 本项目涉及技术点如下: 第一季:主要涉及的技术点 ...

  9. 微信开放平台开发第三方授权登陆(三):Android客户端

    微信开放平台开发系列文章: 微信开放平台开发第三方授权登陆(一):开发前期准备 微信开放平台开发第三方授权登陆(二):PC网页端 微信开放平台开发第三方授权登陆(三):Android客户端 微信开放平 ...

  10. java并发小说爬虫,多站点搜索下载,并实现Android客户端开发

    小说爬虫真的很简单,但要能优雅地使用却很麻烦.下面让我来诉说一下这几天的肝路历程.整个流程很完整,但不会很深入,主要是讲思路,给想要写类似功能的同学踩点坑,有什么细节问题直接评论就好. 文章目录 明确 ...

最新文章

  1. 2018.2.27 9周5次课
  2. JB的测试之旅-上传的mp3文件播放不了
  3. 内存地址 哪个程序_记一次排查线上程序内存的忽高忽低,又是大集合惹祸了...
  4. 数据库中间件mycat
  5. 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.19 使用bcp实施批量导出...
  6. oracle的SCN和Checkpoint_Change#的关系
  7. eclipse快速定位到错误处
  8. 基于bootstrap模态框的日期选择器
  9. python3怎么使用mnist_loader_Python读取mnist
  10. python项目练手(一)------飞船大战游戏
  11. Objective-C 继承新的认识以及作用
  12. 大容量网盘才是王道?看看坚果云这类的小容量网盘的生存之道
  13. Android相对布局简单案例(附完整源码)
  14. 【前端】基于layui写的一个高级搜索(筛选)功能
  15. 使用redis+切面完成分布式锁
  16. 简单操作绕过 PayPal 捐赠地区限制(2022.10.1可用)
  17. 关于win10输入法问题(打不出中文)解决方法
  18. 田野调查手记·浮山摩崖石刻(六)
  19. 基于stm32的两轮自平衡小车1(模块选型篇)
  20. 【9.4】多元复合函数的求导法则

热门文章

  1. 论文笔记:Connectionist Temporal Classification: Labelling Unsegmented Sequence
  2. ubuntu20.04设置登录壁纸
  3. 语音合成TTS主要模型分析
  4. mysql 大文本_MySQL长文本存储类型
  5. scrapy15.0,scrapy.contrib.downloadermiddleware.useragent` is deprecated,旧模块被弃用解决办法.
  6. Python之基础详解(九):关于VisualMapOpts视觉映射配置项详解
  7. DCDC基础(10)-- BUCK电路的CCM和DCM模式
  8. 愚人节主题的微信公众号图文排版有哪些搞怪素材?
  9. com.android.dx.cf.iface.ParseException
  10. 如何去做一个完整的网站SEO优化方案!