写在最前面

个人开发者的开发Android的热潮已过,目前实在不太适合个人开发者的生存。但是没事的时候运用新技术写点小软件,开源出来跟大家一起学习,一起营造一个好的开发环境。

软件立项及方向选择

因为自己的一个想法开始做这个项目,或者在实际开发中由产品经理立项。由于本人不会后端,所以选择的是三方开源API。
百度apistore——里面有很多可以用的API接口,有付费的也有免费的。
你也可以直接用Bmob后端云——一个强劲的后端,免去所有服务器端编码工作量

本软件包含两大模块
- 美拍视频 Api 取自 美拍Api

  • 知乎日报 Api 取自 ZhihuDailyPurify

原型设计

墨刀——免费的移动应用原型与线框图工具
人人都是产品经理——产品经理、产品爱好者学习交流平台

UI设计

UI设计大家都知道PS或者coreldraw,当然作者只会切图。本项目全部运用Android material design设计风格
官方Material Design详细介绍文档:http://www.google.com/design/spec/material-design/introduction.html

框架的搭建

现在的MVP模式越来越流行。所以框架主体选用了MVP+RxJava+Retrofit+okhttp3
具体可查看:一个优秀的Android应用从建项目开始

开发

这个阶段是最简单的,详细怎么开发作者就不阐述了。在这里作者给出本项目所用到的东西:
- CoordinatorLayout——使用CoordinatorLayout打造各种炫酷的效果
- 【Android】Fragment懒加载和ViewPager的坑——Fragment懒加载
- Android开发人员不得不收集的代码(持续更新中)——Android工具类
- EasyRecyclerView——支持下拉上拉刷新等功能全面的RecyclerView
- 2016Android开源项目及库汇总——开源项目及库汇总

上线准备

1、各平台账号的申请

  • 应用市场
    对于个人开发者来说,Android App开发最麻烦的不是开发,而是各种应用商店的审核,广告平台的集成以及推广。由于只有一个人,所以必须所有的事情都自己做。而且对于个人来说,即便上述操作都完成了,如果应用商店不进行推荐,下载量也是迟迟起不来。毕竟不论软件好用与否,大家下载软件往往都是从下载量高到下载量低的。我的某些软件也是因为当初有应用商店与广告平台合作,会对特定广告平台的软件进行推广,而下载量暴增的。由于国家的实名制规定,很多的应用商店开始审核身份证了,需要身份证扫描件,照片等等,这个给个人开发者带来了很大的困扰。
  • 登录及分享平台账号
    分享和登录可单独集成,也可以使用sharesdk、友盟等三方工具。分享还好,但是微信登录必须要进行认证,而且要收取年费,对于个人开发者又是一大困扰。
  • 统计
    统计现在一般都是用友盟,没什么可说的了

2、官网以及运营

对于个人开发者而言,官网和运营肯定是越简单越好,除非你这个项目有很好的商业模式。所以一般就自己进行一个简单的新媒体运营,这里为大家推荐这篇文章:新媒体运营微信编辑人员必备工具(打包免费送)
作者一般用的是:MAKA——一分钟上手,五分钟创作H5,超越PPT的极简操作方式!单页可以用来做官网。

3、代码混淆

为什么需要代码混淆呢?原因很简单,你的apk很容易被反编译出来,你写的代码都会被看到,因此我们需要在编译过程中对代码进行一定程度的混淆,使得别人不能反编译不出你的代码。本文因为是开源,所以没做混淆处理。下面介绍下具体混淆过程:
    新建一个项目,Android Studio默认关闭代码混淆开关,在build.gradle文件中,如下图所示的minifyEnabled 开关,因此如果需要混淆代码,需将false改为true,然后在文件proguard-rules.pro添加具体混淆规则。
   

-dontskipnonpubliclibraryclasses # 不忽略非公共的库类
-optimizationpasses 5            # 指定代码的压缩级别
-dontusemixedcaseclassnames      # 是否使用大小写混合
-dontpreverify                   # 混淆时是否做预校验
-verbose                         # 混淆时是否记录日志
-keepattributes *Annotation*     # 保持注解
-ignorewarning                   # 忽略警告
-dontoptimize                    # 优化不优化输入的类文件

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  # 混淆时所采用的算法

#保持哪些类不被混淆
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService    

#生成日志数据,gradle build时在本项目根目录输出
-dump class_files.txt            #apk包内所有class的内部结构
-printseeds seeds.txt            #未混淆的类和成员
-printusage unused.txt           #打印未被使用的代码
-printmapping mapping.txt        #混淆前后的映射

-keep public class * extends android.support.** #如果有引用v4或者v7包,需添加
-libraryjars libs/xxx.jar        #混淆第三方jar包,其中xxx为jar包名
-keep class com.xxx.**{*;}       #不混淆某个包内的所有文件
-dontwarn com.xxx**              #忽略某个包的警告
-keepattributes Signature        #不混淆泛型
-keepnames class * implements java.io.Serializable #不混淆Serializable

-keepclassmembers class **.R$* { #不混淆资源类
  public static <fields>;
}
-keepclasseswithmembernames class * {  # 保持 native 方法不被混淆
    native <methods>;
}
-keepclasseswithmembers class * {      # 保持自定义控件类不被混淆
    public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {      # 保持自定义控件类不被混淆
    public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity { # 保持自定义控件类不被混淆
    public void *(android.view.View);
}
-keepclassmembers enum * {             # 保持枚举 enum 类不被混淆
    public static **[] values();    public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {         # 保持 Parcelable 不被混淆
    public static final android.os.Parcelable$Creator *;
}

3、打包上传市场

这阶段主要注意的就是各个平台的审核标准,说实话对于个人开发者,各个平台都不是很友好,很多限制。这个就需要自己慢慢琢磨了。

写到最后

以上经供参考,有不对的地方提出来大家一起探讨。
因为最近加我的人比较多,所以去建了一个群。只技术探讨,拒绝闲聊——【Android技术分享】:群号534813930
APK下载地址:http://pan.baidu.com/s/1pLKZq0z
最后给出github地址,给个star支持下作者。谢谢!
https://github.com/Rance935/BeautyPaPa

Android项目从零到上线的全过程相关推荐

  1. android 上线apk,码云 Android apk 在线构建功能上线啦!

    原标题:码云 Android apk 在线构建功能上线啦! #点击上图,立即参与OSC珠海源创会# duang duang duang -- 各位看官,开源中国码云 Android 项目构建新功能上线 ...

  2. 记一个自己项目上线的全过程

    个人终于第一次完成了一个java web项目从策划到最终上线的全过程,虽然项目十分简单,但全流程跑通的感觉还是倍爽的,之后再做项目则只是各个环节上的细化了. 现在我将我的"第一次" ...

  3. android项目实战课程扣丁音乐已杀青预计本月上线

    Android项目实战课程<扣丁音乐>杀青啦Android项目实战课程<扣丁音乐>于今天杀青,用不了些许日子,等后期制作妹子剪辑完成后,将在扣丁学堂官网更新(目前已更新至第12 ...

  4. android Android项目构建过程

    今天,简单讲讲android studio如何把写好的工程打包成apk的. 平时开发过程中我们通过android studio编写完成android项目之后直接点击 Run 'app'就可以在buil ...

  5. win10开始不显示python_win10从零安装配置pytorch全过程图文详解

    1.安装anaconda (anaconda内置python在内的许多package,所以不用另外下载python) 可以点击下面的清华开源软件镜像站,在官网下载anaconda不如在这下的快 htt ...

  6. Android项目架构设计深入浅出

    简介:本文结合个人在架构设计上的思考和理解,介绍如何从0到1设计一个大型Android项目架构. 作者 | 璞珂 来源 | 阿里技术公众号 前言:本文结合个人在架构设计上的思考和理解,介绍如何从0到1 ...

  7. Android 应用开发(1)---Android项目架构搭建

    Android项目架构搭建 1. 前言 安卓属于小团队开发,架构的重要性在很多公司其实不是那么的明显,加上现在的开源框架层出不穷,更好的帮助我们上手android项目的开发.我前两年也在公司主导过项目 ...

  8. Android项目集成穿山甲开屏/插屏/横幅广告教程大全

    Android项目集成穿山甲开屏/插屏/横幅广告教程大全 开发及项目环境说明 Android Studio 2020.3.1 Patch 4/203.7717.56.2031.7935034 jdk1 ...

  9. Android 版灵动岛插件上线;iPhone 15或将改名,并改用USB-C接口;​Swift 5.7 发布|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

最新文章

  1. pytorch 之手写数字生成网络
  2. 腾讯企业IT部蔡晨:从有界到无界,新一代企业安全防御之道
  3. C#系列五《程序的分支》
  4. C# TabControl中Tab放於左邊並正常顯示TabText(
  5. node稳定版本_Node.js十年,你大爷还是你大爷
  6. 整理一下第一次参加华为大数据挑战赛自己的一些收获吧(正式赛篇阶段一)
  7. 人,总要敢于直面自己的惨淡,才能挺直腰杆
  8. Java设计模式鸭子模式_[JS设计模式]:鸭子类型与多态
  9. Django用户认证系统
  10. Python之爬虫和数据小解析
  11. Rod-cutting(动态规划)
  12. 安卓学习笔记—渐变色背景
  13. 【VUE】【高德地图】如何隐藏(去除)高德地图api左下角logo
  14. 葛洲坝地产的“5G科技”演化:三大维度推进,不唯技术控
  15. 利用NERO刻录VCD视频光盘
  16. 西班牙的计算机水平如何,西班牙人的真实英语水平是欧洲国家中最差的吗?
  17. c语言碱基配对的算法,碱基配对方式有几种,碱基对的种类和碱基配对
  18. 金证部分笔试题--前中后序、IP地址分类、三次握手、BIO,NIO,AIO等
  19. 从软件公司的异同点讲起,聊聊未来的程序员该如何选公司和谋规划
  20. 孕妇高速上产女 交警医生合力架起生命绿色通道

热门文章

  1. Java Servlet3.0使用getPart/getParts实现单文件和多文件上传
  2. win10清理c盘_系统C盘磁盘空间不够用的解决办法
  3. Android去除默认提示音
  4. 微信小程序火车票查询 直取12306数据
  5. 如何获取微信公众平台图文消息的永久链接
  6. Boosting算法与假设间隔
  7. 11 ,FacetGrid 使用,分组画图 :各种图形,详细设置
  8. C# 定时任务 调度框架 WebWork (Quartz.NET) Web版的Windows服务
  9. 使用群晖作mineportalbox(1):合理且不折腾地使用群晖硬件和套件
  10. 在线硬盘存储计算机,硬盘存储