Android开发需求功能一览表

 

 

按照目前我接触到的功能,大概划分下

模块化

1.独立出硬件相关,提供硬件服务

2.界面和业务逻辑  使用H5(flutter  cordova)

flutter也是纯粹独立业务逻辑而已,跟硬件相关还得IOS和Android提供插件支持,所以一套代码适用两个平台说的也仅仅是业务逻辑,不涉及到硬件层面,一个公司涉及的硬件层面得有多少,从节约人力成本来说是值得推荐

RN是用同一个代码语言去写两套代码

 

1.框架     数据库,网络,缓存模式,H5交互(cordova)

2.带有主题并控件化,而且例如输入框这种  统一处理  有清空功能的

3.第三方服务    okhttp/XUTILS,七牛,环信,友盟分享,统计,百度定位,热更新等

4.基础功能    例如引导,设置(关于,升级等)

5.业务功能  (首页,注册,登录,修改密码,重置密码)

 

架构现在流行组件化,参考

http://blog.csdn.net/guiying712/article/details/55213884

https://github.com/mzule/ActivityRouter   做为跳转

http://www.jianshu.com/p/c696acb74bd2

 

大的业务考虑插件化

 

内存优化

https://www.zhihu.com/question/30138734

 

细节实现考虑MVP,MVVM,MVC

 

framework   在线看代码 http://androidxref.com/

 

看到另外一个层面的划分结构:http://www.jianshu.com/p/42d45998117f

 

目前发现两种架构方式

1.普通架构  以Activity为底,我主要用了两个基础activity,一个登陆前,一个是登陆后,登陆前不需要校验直接调用后台接口,登陆后需要校验后才可以使用接口,校验指后台安全性校验,封装类似,主要封装了网络判断,加载动画,隐藏键盘,禁止根据系统设置改变字体大小,动态申请权限等

2.同一个activity,以fragment为底的基础架构,每一个都是fragment,fragment会比activity轻量一些,但是也更容易出现很多坑

http://www.jianshu.com/p/38f7994faa6b

 

 

混合开发分为三种:

1.简单,纯粹展示一些静态页面,webview,加Js桥,自己封装通过js传递string,图片base64,文件不怎么传

2.稍微麻烦点,类似cordova,封装好了一些基础,传递文件二进制,String等,有完善的插件模板还有UI模板,只需要自定义一些特殊,比如自定义了七牛上传特殊插件等

3.完全不一样,使用同一种语言来写不同平台的reactNative,类似JS语言来控制原生界面显示和逻辑,基本上原生关系不太大了,学习成本高

 

组件化封装一个    Android业务组件化之URL Scheme使用   参考:http://www.cnblogs.com/whoislcj/p/5825333.html   可以标准化参数和跳转

 

 

VR   其实就是平铺的openGl的球型图片,当然视频是怎么做到,还没太清楚,按道理应该是类似的,球型播放

可以利用谷歌的VR播放器。https://github.com/linglongxin24/VRDevelopVideo

 

AR   Unity3D显示3D图形在屏幕上  http://www.arvrschool.com/read.php?tid=325&fid=21

 

UI:

1.引导界面

2.注册界面

3.登录页面

4.主界面(微信式下分页,QQ式侧滑分页)

5.设置界面

6.关于界面

7.升级检查更新  有升级标志位,强制升级,提示升级,静默安装

8.意见反馈

9.其他(看需求)

a.activity  生命周期   栈模式

b.server bind模式,声明周期  前台服务  

c.broadcastreceiver  静态和动态注册

d.Content Provider  对外暴露提供数据库接口(http://www.cnblogs.com/chenglong/articles/1892029.html  http://www.2cto.com/kf/201404/296974.html)

e.application 

10.控件自写

a.集成(已有控件集成在一起)

b.自写(根据控件手动画一个控件,没有已有控件支持)

c.继承(在已有控件基础上自己添加新功能以适合独特APP使用)

11.动画效果

12.3D展示

其他功能:

13.JNI NDK  C类库调用

14.代码混淆  加壳编译等 加密

15.网络交互

a.SSL()和普通HTTP请求

b.支持断点上传下载

c.网络状态判断(WIFI,移动,断网)

d.网络传输(文字,文件)

(1)文字传输 (XML,JSON)

(2)文件传输(传输前压缩,文件流直传)

e.代理

f.线程池管理 

g.多线程交互 同步和异步

h.HTTP与局域网内SOCKET

16.数据存储

a.SQLITE  (可以使用第三方框架greenDAO 或ActiviteAndroid)

b.文件存储

c.sharepreference

d.网络存储

17.媒体播放(图片,音乐和视频)

18.图片处理

 

a,图片变形压缩转换

b.异步下载

c.缓存CACHE

19.工具包

 

a.常量

b.LOG分级控制记录上传等(http://bugly.qq.com/androidfast) ANR  CRASH  其他类型LOG   

日志分为3种    Crash日志   用户业务操作日志(后台处理)  用户行为日志    

c.本地保存

20.地图功能(百度SDK  http://lbsyun.baidu.com/sdk/download)

21.推送功能(百度SDK http://push.baidu.com/   http://developer.baidu.com/platform/catalog/navigation-c/node/n301  也可以使用其他第三方,或者自己写)

22.用户统计

23.硬件设备

a.蓝牙

b.传感器(重力,加速度,方向,光线,GPRS等)

c.NFC

d.摄像头(二维码,人脸识别,卡号识别,拍照)

e.录音

f.wifi

g.GPRS

24.搜索(应用内搜索,网络搜索,语音搜索)

25.即时通讯(环信 http://www.easemob.com/downloads)

26.分享和第三方账号登录(sharesdk  http://wiki.sharesdk.cn/   http://www.cnblogs.com/smyhvae/p/4585340.html)

27.支付集成(微信,支付宝,网银)

28.APP对外的接口(AIDI,还有其他自定义广播等)

29.辅助功能服务(例如抢红包辅助功能http://blog.csdn.net/jwzhangjie/article/details/47205299 )

30.hybird网页混合开发模式

    最普通一种修是webview加载H5页面,然后回调Android或IOS原生接口(http://www.tuicool.com/articles/m6RVFfA)

    当然还有其他的框架,有些针对于纯前端开发者的

31.自动化编译   Android studio 针对gralde (http://blog.csdn.net/voiceofnet/article/details/45197883)   Ecplise针对ant(http://blog.csdn.net/webwalker/article/details/24796347)

32,pdf开源组件    vuAndroid 有些格式PDF不支持,例子:http://download.csdn.net/detail/z157794218/9517512   

支持比较好的mupdf  http://download.csdn.net/detail/z157794218/9518361

33.使用Android6.0以后权限需要检查后申请,参考  http://www.cnblogs.com/cr330326/p/5181283.html

别人讲基础和进阶

http://blog.csdn.net/liuhe688/article/details/9494411

第三方开源代码:

http://blog.csdn.net/shulianghan/article/details/18046021

http://blog.csdn.net/zhaihaohao1/article/category/3162599

http://blog.csdn.net/oyangyujun/article/details/43340893

http://www.open-open.com/lib/view/open1436262653692.html

https://github.com/Trinea/android-open-project

替换主题  https://github.com/burgessjp/ThemeSkinning(封装的)  https://github.com/fengjundev/Android-Skin-Loader

按钮在线制作图片  http://angrytools.com/android/button/

34.字体大小  不跟随系统字体改变 http://blog.csdn.net/zhuqiang1002/article/details/38756127

自定义设置字体大小 参考  http://blog.csdn.net/u011730649/article/details/42872923   其他方面

字体适配可能需要自己定义主题来做会更好些  http://www.cnblogs.com/likeandroid/p/4501758.html

35.阴影添加  https://github.com/Hitomis/CrazyShadow

36.开始代码编写简化第三方库文件  事件消息传递eventbus        http://blog.csdn.net/harvic880925/article/details/40660137 

Retrofit注解        http://www.jianshu.com/p/308f3c54abdd

rxjava   http://gank.io/post/560e15be2dca930e00da1083

图片拍照选择器:

 

https://github.com/jeasonlzy/ImagePicker

https://github.com/easonline/AndroidImagePicker

https://github.com/pengjianbo/GalleryFinal

 

 

glide 图片缓存 https://github.com/bumptech/glide 

Robust 热更新  http://tech.meituan.com/android_robust.html

Tinker热更新  http://www.tinkerpatch.com/

工具类      https://github.com/Blankj/AndroidUtilCode

 

http://blog.csdn.net/dj0379/article/details/38356773  XUtils 支持下载大文件,断点续传

 

 

 

好用吸色器http://www.getmarkman.com/#/download-modal

这只是我自己划分以及知识点,如果有不足,期望大家补充说明

 

ScrollView和recyclerView嵌套,有个简单方法。

ScrollView改成NestedScrollView,recyclerView.setNestedScrollingEnabled(false);加上这两句问题就解决了

 

scrolliview一直滑到最底部 scrollto失效

 

scrollView.post(new Runnable() {
            @Override
            public void run() {

                scrollView.fullScroll(ScrollView.FOCUS_UP);
            }
        });


toast 在乐视pro3上手机无法显示

 

http://blog.csdn.net/qq_25867141/article/details/52807705

记录一个工具 ImageOptim   专门用来优化图片大小,减小APP大小

一个有意思的移动端数据问题

http://blog.csdn.net/ceko_wu/article/details/45244295 CursorAdapter优化排序和显示问题

如果有NDK支持,其实也使用C层直接寻址排序和寻找

 

AndroidStuido的插件

https://www.jianshu.com/p/d76b60a3883d

https://blog.csdn.net/zheng_weichao/article/details/72961791

 

gradle多渠道打包

https://www.jianshu.com/p/4677efee7214

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值