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

模块化

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() {@Overridepublic 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

Android开发需求功能一览表相关推荐

  1. Android开发常用功能 https://www.2cto.com/kf/201611/561847.html

    Android开发常用功能 2016-11-03 09:43:58          来源:EvanJames的专栏 收藏   我要投稿 1.定时器的实现 (1)采用Handler的postDelay ...

  2. 解决:android 开发 WIFI 功能 密码输入正确时监听的问题

    问题描述: 在一个 android 项目中 需要 开发 类似于 系统 wifi 连接的功能,选择可用 wifi 后,输入正确的密码后,WifiManager.SUPPLICANT_STATE_CHAN ...

  3. Android开发常用功能

    1.定时器的实现 (1)采用Handler的postDelayed(Runnable, long)方法 <strong>Handler handler = new Handler(); R ...

  4. android开发 书签功能,android studio的喜欢和书签功能

    如果你是一个安卓开发者,你可能已经发现了一些隐藏在Android Studio里面的非常棒的功能.我也不是例外,而昨天我也在纠结(意思是花了些时间去理解)于一些让开发变的更轻松的新功能.这些功能就是书 ...

  5. android开发板功能,嵌入式开发-迅为4418开发板Android4.4.4实现ble功能

    ①.迅为4418开发板Android4.4.4实现ble功能: 在4418/android/device/nexell/drone2/device.mk中添加: frameworks/native/d ...

  6. android开发板功能,Android中NFC模块PN532开发板应用/原理图/PCB等全部资料

    PN532是NXP最近推出的一款NFC芯片,支持读卡器模式和卡模式(需要卡芯片Smart MX),支持TypeA丶TypeB丶TypeC三个标准.该NFC模块PN532开发板特点: @ 内部带一个MC ...

  7. android开发收藏功能实现,Android使用Realm数据库如何实现App中的收藏功能

    Android使用Realm数据库如何实现App中的收藏功能 发布时间:2021-05-07 11:20:34 来源:亿速云 阅读:63 作者:小新 这篇文章主要介绍了Android使用Realm数据 ...

  8. 基于Android开发通讯录功能

    从Android手机获取通讯录信息,这个技术很早之前就已经出现了. 网上的各种教程也很多,最常见的就是传入uri,使用游标来获取信息. 文件:url80.ctfile.com/f/25127180-7 ...

  9. Android开发收音机功能,基于Android系统的FM收音机功能的设计与实现

    摘要: 随着移动互联网时代的到来,智能移动终端产业也迎来了繁荣期.各手机厂商争相推出自己的智能手机和平板电脑.其中安卓系统由于其源码的开放性以及不错的用户体验,而得到了各大手机厂商以及手机应用开发人员 ...

最新文章

  1. KNN算法(K最近邻算法)详解
  2. RedHat7.4最小化安装yum源不可用问题解决
  3. apache修改最大连接并用ab网站压力测试
  4. 基于KVM虚拟化搭建lamp
  5. 使用简介EntityFramework6.0
  6. 模板:二维线段树(线段树套线段树)
  7. 在护卫神上部署javaWeb项目,已经测试通过
  8. 基于uniapp开发的适用于微信小程序,头条小程序
  9. [转] 谈谈JS中的函数节流
  10. Facebook开源了两个无监督翻译模型,只用单语就能训练双语
  11. C# Using 用法
  12. 计算机组成原理—存储系统大纲
  13. 在主函数中输入10个等长的字符串。用另一函数对他们排序
  14. 陈国君Java程序设计基础笔记和习题
  15. 手动安装高可用k8s集群(二进制)v1.23.4版本
  16. Liang-GaRy啃linux书想吐(五)
  17. 数学与计算机学院英文翻译,数学与计算机,mathematics and computer science,音标,读音,翻译,英文例句,英语词典...
  18. B站Up主-山地人-这位老哥2019年的前端自学计划进展如何?——讲一个B站Up主自学前端85天的故事...
  19. Eslint代码规范
  20. 基于qiankun搭建ng-alain15微前端项目示例实践

热门文章

  1. 怎样将表格拆分为多个独立工作簿
  2. 模拟登陆微信公众平台
  3. 角度和弧度之间的换算
  4. Java学习笔记(视频:韩顺平老师)3.0
  5. 解决git问题:fatal: Need to specify how to reconcile divergent branches.
  6. Spark Executor内存管理
  7. unity添加对象实例_Unity预制件和实例化解释和示例
  8. 2024年408 计算机考研 学习视频集
  9. xposed android4.4,应用管理Xposed
  10. 十以内的加减乘除运算题