扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Android应用开发的框架步骤:
站在用户的角度思考问题,与客户深入沟通,找到祥云网站设计与祥云网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广、空间域名、虚拟主机、企业邮箱。业务覆盖祥云地区。
1. 项目工程搭建
在搭建工程结构的时候可以尽量抽取一些共用的东西,例如,数据库操作、base、task、事件观察者、通用的工具类、UI公共组件等等,这些东西应该表现在代码结构中。
2. 根据需求,可能需要单独的抽取一些核心的包类。
3. AppContext 的处理
在一个应用中只会存在一个实例,所以一般用来存储一些全局的变量和一些只需要处理一次的数据。
4. Base的处理
对BaseActivity的处理好坏一定程度上会影响项目的代码可读性,在Base里面做一些规范化处理将会大大减少代码的书写量和提高可读性。
5. 数据库的处理
在处理数据库的时候采用ContentProvider的方式。
6. 图片的处理
对图片处理的软件很多,只要把基本的一些开源框架原理搞清楚就可以了。
注意:在android开发项目中,首先要考虑的是这个项目或者说这个产品的核心功能。比如,图片处理和展示类app,更多考虑对大量图片的处理,防止OOM等等。
工具/材料
电脑
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应用程序,后续只要对其进行打包签名,混淆加密后即可发布到应用市场供别人下载使用.
转自:
本文针对android studio工具下的ndk开发。
build目录就是项目模块构建过程和结果使用到的位置。
项目根目录下有一个build目录。
项目根目录下各模块子目录下各自有一个build目录。
build目录下一般由4个子目录组成:
generated由aapt工具根据资源数据自动生成的java类
intermediates中间过程
outputs输出结果
tmp编译日志
根目录下的build目录,这个build服务于整个项目,在本文中称其做项目build,以区分模块build。
项目build一般只有generated和intermediates两个子目录,用于生成这个项目的buildTools。
generated目录会生成一个mockable-android-${buildToolsVersion}.jar。
intermediates目录根据需要生成dex-cache,这个目录下的xml文件配置jar包在编译过程中如何缓冲使用。
模块build目录在make module ${MOD_NAME}后就会生成4个子目录。
我们来看intermediates目录,中间生成和编译过程使用到的目录。
这个目录下有这么几个比较关心的子目录:
binaries NDK,生成c++连接库
bundles 模块链接到的自定义jar包和各abi版本的c++链接库都捆绑在这里
classes模块中生成的自定义java类
exploded-aar 由aar包解压出来的资源,jar包和so链接文件等。用于本模块的链接和集成。
jniLibs 在build.grade中你指定的jniLibs目录整个拷贝。模块链接到的库文件会被捆到bundles目录。
objectFiles NDK,生成c++中间对象(.o)文件。
transforms 根据你当前选择的productFlavor和其包含的abiFilter,从bundles和binaries取出链接库。
接着就是output目录:
aar如果模块是android library
jar 如果模块是java library
apk 如果是Activity应用程序
最后就是tmp目录:
compile$(NDK_Module)$(ABI)$(BUILD_TYPE)$(PRODUCT_FLAVOR)MainCpp ndk编译日志
link$(NDK_Module)$(ABI)$(BUILD_TYPE)$(PRODUCT_FLAVOR)$(LIB_TYPE) ndk链接日志
编译的子目录由三要素组合而成,分别是
BUILD_TYPE := debug|release
ProductFlavor := 你在gradle文件中创建的flavor
abiFilter :=
逆向深入objc,c++ windows下仿objc动画层UI引擎
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流