android开发素材
A. 基于android开发app需要哪些知识
一个完整的android app开发有简单有复杂,不同的app应用功能的差异也导致不同的技术实现或者算法模型。
大体来说,一个app从设计到最终实现需要你懂得以下几个必要方面:
1、前期需求规划与信息——你需要制定出一个完整的需求文档,功能文档,流程图,时序图。
2、交互设计、UI设计——设计出基本且完善的原型图和app基础的交互设计效果,之后再根据这些设计出完整的UI界面并学会切图。
3、使用ADT之类的开发环境进行app软件开发,最基本的也得掌握java语言,熟悉android环境和机制。
B. Android中 怎么获取apk中的素材图片
有些APK程序里的图标、图片很漂亮,在使用程序时你可能会想,如果能把这些漂亮的图标、图片提取出来就好了,其实这是可以办到的,请看教程。
更多例子请参考android学习手册,里面有源码。android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳
本教程以“电影超人”的APK安装包为例,其它APK程序的提取方法基本相同。以下内容需要在电脑中进行操作。
1.用压缩软件打开APK
APK程序其实就是个ZIP压缩包,想提取其中的资源就得先用解压缩软件将其打开,如图我们在APK安装包上右键、打开方式、选择压缩软件,我这里选择的是RAR,如果你安装的是其它的解压缩软件,选择它即可。如果你以前没有用压缩软件打开过APK文件,可以点击选择默认程序然后找到解压缩软件进行打开。
2.解压图片文件夹
用解压缩软件打开APK程序后,如图里面有几个文件夹,我们拖出“res”这个文件,一般APK程序的图片资源都在这个文件中。
3.寻找需要的图片
把“res”文件夹解压后我们打开可以看到里面的几个文件夹一般程序图标等图片都在“drawable-hdpi”这个文件夹,打开看看,是不是有自己需要的东西,如果没有再到其它的几个文件夹中查找一下。APK文件里的图片都是png格式的,可直接查看,这点比水果要厚道了许多。
4.反编译查找资源
也许大家发现了,解压后“电影超人”里大量的电影图片并没有看到,那是因为APK程序制作时把它们编译到了“resources.arsc”文件里我们想提取的话把APK文件进行反编译就可以了。具体反编译方法这里就不讲解了,请自行网络。
C. Android开发权威指南的图书目录
第一部分准备篇
第1章初识庐山真面目——Android开发简介2
1.1Android的基本概念2
1.1.1Android简介2
1.1.2Android的版本4
1.1.3Android的系统构架5
1.1.4Android的应用程序框架6
1.2JIL Widget介绍7
1.3小结8
第2章工欲善其事,必先利其器——搭建和使用Android开发环境9
2.1开发包及工具的安装9
2.1.1开发Android程序都需要些什么9
2.1.2安装JDK和配置Java开发环境10
2.1.3Eclipse的安装与汉化11
2.1.4安装AndroidSDK12
2.1.5安装Eclipse插件ADT13
2.2真实体验——编写第一个Android程序(随机绘制圆饼)15
2.2.1创建Android工程15
2.2.2在模拟器中运行Android程序17
2.2.3界面控件的布局19
2.2.4编写代码20
2.2.5调试程序23
2.2.6在手机上运行和调试程序28
2.3迁移Android工程可能发生的错误29
2.4不需要写一行代码的开发工具:AppInventor31
2.4.1AppInventor简介31
2.4.2AppIntentor的下载和安装31
2.4.3用拖曳控件的方式设计界面33
2.4.4像拼图一样拼装代码34
2.5小结37
第二部分基础篇
第3章千里之行始于足下——Android程序设计基础40
3.1Android应用程序框架40
3.1.1Android项目的目录结构40
3.1.2AndroidManifest.xml文件的结构42
3.2Android应用程序中的资源44
3.3Android的应用程序组件44
3.3.1Activity(Android的窗体)45
3.3.2Service(服务)45
3.3.3Broadcast Receiver(广播接收器)45
3.3.4Content Provider(内容提供者)46
3.4Android程序的UI设计46
3.4.1手工配置XML布局文件46
3.4.2ADT自带的可视化UI设计器47
3.4.3使用DroidDraw设计UI布局47
3.5小结48
第4章我的UI我做主——用户界面开发基础49
4.1Activity的使用方法49
4.1.1创建Activity49
4.1.2配置Activity50
4.1.3显示其他的Activity(Intent与Activity)52
4.2Activity的生命周期55
4.3在不同Activity之间传递数据60
4.3.1使用Intent传递数据60
4.3.2使用静态变量传递数据62
4.3.3使用剪切板传递数据63
4.3.4使用全局对象传递数据65
4.3.5返回数据到前一个Activity67
4.4视图(View)68
4.4.1视图简介68
4.4.2使用XML布局文件定义视图69
4.4.3在代码中控制视图70
4.5布局(Layout)72
4.5.1框架布局(FrameLayout)72
4.5.2线性布局(LinearLayout)75
4.5.3相对布局(RelativeLayout)79
4.5.4表格布局(TableLayout)81
4.5.5绝对布局(AbsoluteLayout)82
4.5.6重用XML布局文件82
4.5.7优化XML布局文件85
4.5.8查看apk文件中的布局86
4.6小结87
第5章良好的学习开端——控件(Widget)详解88
5.1常用XML属性解析88
5.1.1android:id属性88
5.1.2控件的宽度(android:layout_width)和高度(android:layout_height)88
5.1.3android:layout_margin属性89
5.1.4android:padding属性89
5.1.5android:layout_weight属性90
5.1.6android:layout_gravity和android:gravity属性90
5.1.7android:visibility属性91
5.1.8android:background属性91
5.1.9指定单击事件方法(android:onClick属性)92
5.1.10控件焦点属性(android:focusable和android:focusable-InTouchMode)92
5.2TextView(显示文本的控件)93
5.2.1显示富文本(URL、不同大小、字体、颜色的文本)93
5.2.2在TextView中显示表情图像和文字97
5.2.3单击链接弹出Activity100
5.2.4为指定文本添加背景103
5.2.5带边框的TextView106
5.2.6设置行间距110
5.2.7在未显示完的文本后面加省略号(…)111
5.2.8用TextView实现走马灯效果113
5.2.9垂直滚动TextView中的文本114
5.3EditText(编辑文本的控件)115
5.3.1像QQ一样输入表情图像115
5.3.2在EditText中输入特定的字符117
5.3.3AutoCompleteText-View(自动完成输入内容的控件)118
5.4按钮和复选框控件120
5.4.1Button(普通按钮控件)120
5.4.2图文混排的按钮122
5.4.3ImageButton(图像按钮控件)124
5.4.4RadioButton(选项按钮控件)124
5.4.5ToggleButton(开关状态按钮控件)125
5.4.6CheckBox(复选框控件)126
5.5ImageView(显示图像的控件)128
5.5.1ImageView控件的基本用法128
5.5.2显示指定区域的图像129
5.5.3缩放和旋转图像132
5.6时间与日期控件133
5.6.1DatePicker(输入日期的控件)133
5.6.2TimePicker(输入时间的控件)134
5.6.3DatePicker、TimePicker与TextView同步显示日期和时间134
5.6.4AnalogClock和DigitalClock(显示时钟的控件)136
5.7进度条控件137
5.7.1ProgressBar(进度条控件)137
5.7.2SeekBar(拖动条控件)139
5.7.3设置ProgressBar和SeekBar的颜色及背景图140
5.7.4RatingBar(评分控件)143
5.8列表控件145
5.8.1ListView(普通列表控件)145
5.8.2为ListView列表项添加复选框和选项按钮147
5.8.3对列表项进行增、删、改操作149
5.8.4改变列表项的背景色153
5.8.5ListActivity(封装ListView的Activity)154
5.8.6ExpandableListView(可扩展的列表控件)155
5.8.7Spinner(下拉列表控件)157
5.9滚动控件160
5.9.1ScrollView(垂直滚动控件)160
5.9.2HorizontalScrollView(水平滚动控件)161
5.9.3可垂直和水平滚动的视图162
5.9.4Gallery(画廊控件)163
5.10ImageSwitcher(图像切换控件)164
5.11GridView(网格控件)166
5.12TabHost(标签控件)168
5.13ViewStub(惰性装载控件)169
5.14小结171
第6章友好的菜单——Menu介绍与实例172
6.1菜单的基本用法172
6.1.1创建选项菜单(Options Menu)172
6.1.2带图像的选项菜单173
6.1.3关联Activity173
6.1.4响应菜单的单击动作174
6.1.5动态添加、修改和删除选项菜单175
6.1.6带复选框和选项按钮的子菜单176
6.1.7上下文菜单178
6.1.8菜单事件179
6.1.9从菜单资源中装载菜单180
6.2菜单特效181
6.2.1自定义菜单181
6.2.2模拟UCWeb效果菜单184
6.2.3QuickContactBadge与联系人菜单189
6.3小结192
第7章友好地互动交流——信息提醒(对话框、Toast与Notification)193
7.1对话框的基本用法193
7.1.1带2个按钮(确认/取消)的对话框193
7.1.2带3个按钮(覆盖/忽略/取消)的对话框195
7.1.3简单列表对话框196
7.1.4单选列表对话框198
7.1.5多选列表对话框199
7.1.6进度对话框201
7.1.7登录对话框205
7.1.8使用Activity托管对话框207
7.2对话框的高级应用209
7.2.1阻止单击按钮关闭对话框209
7.2.2改变对话框的显示位置213
7.2.3在对话框按钮和内容文本中插入图像215
7.2.4改变对话框的透明度216
7.3Toast217
7.3.1Toast的基本用法217
7.3.2永不关闭的Toast218
7.3.3用PopupWindow模拟Toast提示信息框221
7.4通知(Notification)221
7.4.1在状态栏上显示通知信息222
7.4.2Notification的清除动作224
7.4.3永久存在的Notification225
7.4.4自定义Notification226
7.5小结227
第8章移动的信息仓库——数据存储228
8.1读写key-value对:SharedPreferences228
8.1.1SharedPreferences的基本用法228
8.1.2数据的存储位置和格式229
8.1.3存取复杂类型的数据230
8.1.4设置数据文件的访问权限233
8.1.5可以保存设置的Activity:PreferenceActivity234
8.2文件存储238
8.2.1openFileOutput和openFileInput方法238
8.2.2读写SD卡中的文件239
8.2.3SAX引擎读取XML文件的原理241
8.2.4将XML文件转换成Java对象242
8.2.5文件压缩(Jar、Zip)245
8.3SQLite数据库249
8.3.1SQLite数据库管理工具249
8.3.2SQLiteOpenHelper类与自动升级数据库251
8.3.3数据绑定与SimpleCursorAdapter类252
8.3.4操作SD卡上的数据库255
8.3.5将数据库与应用程序一起发布256
8.3.6内存数据库257
8.4小结258
第9章Android中的窗口——Activity259
9.1调用其他程序中的Activity259
9.1.1直接拨号259
9.1.2将电话号传入拨号程序259
9.1.3调用拨号程序260
9.1.4浏览网页261
9.1.5向E-mail客户端传递E-mail地址261
9.1.6发送E-mail261
9.1.7查看联系人262
9.1.8显示系统设置界面(设置主界面、Wifi设置界面)263
9.1.9启动处理音频的程序264
9.2自定义Activity Action264
9.3Activity的高级应用266
9.3.1ActivityGroup266
9.3.2自定义半透明窗口268
9.3.3Activity之间切换的动画效果269
9.4小结270
第10章全局事件——广播(Broadcast)271
10.1什么是广播271
10.2接收系统广播272
10.2.1短信拦截272
10.2.2用代码注册广播接收器274
10.2.3广播接收器的优先级275
10.2.4来去电拦截276
10.2.5截获屏幕休眠与唤醒280
10.2.6开机自动运行281
10.2.7显示手机电池的当前电量282
10.3发送广播284
10.4验证广播接收器是否注册285
10.5小结286
第11章跨应用数据源——Content Provider287
11.1Content Provider的作用287
11.2获得系统数据288
11.2.1读取联系人信息288
11.2.2查看收到的短信290
11.3自定义Content Provider291
11.3.1查询城市信息291
11.3.2为Content Provider添加访问权限297
11.4小结298
第12章一切为用户服务——Service基础与实例299
12.1Service基础299
12.1.1Service的生命周期299
12.1.2绑定Activity和Service302
12.1.3开机启动Service305
12.1.4判断Service是否已注册306
12.1.5判断Service是否已开始307
12.2跨进程访问(AIDL服务)308
12.2.1什么是AIDL服务308
12.2.2建立AIDL服务的步骤308
12.2.3建立AIDL服务308
12.2.4传递复杂数据的AIDL服务312
12.2.5AIDL与来去电自动挂断317
12.3小结319
第13章做好应用桥梁——网络与通信320
13.1WebView控件320
13.1.1用WebView控件浏览网页320
13.1.2用WebView控件装载HTML代码322
13.2访问HTTP资源324
13.2.1提交HTTP GET和HTTP POST请求324
13.2.2HttpURLConnection类326
13.2.3上传文件327
13.3客户端Socket330
13.3.1连接服务器331
13.3.2扫描服务器打开的端口331
13.3.3发送和接收数据333
13.3.4获得无线路由分配给手机的IP地址334
13.3.5设置Socket选项335
13.4服务端Socket339
13.4.1手机服务器的实现339
13.4.2利用Socket在应用程序之间通信340
13.5蓝牙通信342
13.5.1蓝牙简介342
13.5.2打开和关闭蓝牙设备343
13.5.3搜索蓝牙设备344
13.5.4蓝牙数据传输346
13.6小结351
第14章炫酷你的应用——多媒体开发352
14.1音乐352
14.1.1播放音乐352
14.1.2录音353
14.2视频354
14.2.1使用VideoView播放视频354
14.2.2使用SurfaceView播放视频355
14.2.3录制视频357
14.3相机357
14.3.1调用系统的拍照功能358
14.3.2自定义拍照功能359
14.4铃声364
14.5小结366
第15章2D游戏开发367
15.1绘制游戏的画布367
15.1.1在View上实现动画效果367
15.1.2在SurfaceView上实现动画效果371
15.2图形绘制基础374
15.2.1绘制像素点374
15.2.2绘制直线374
15.2.3绘制圆形375
15.2.4绘制弧375
15.2.5绘制文本376
15.2.6综合绘制各种图形376
15.3高级图像处理技术380
15.3.1绘制位图380
15.3.2图像的透明度382
15.3.3旋转图像383
15.3.4路径384
15.3.5Shader的渲染效果388
15.4帧(Frame)动画392
15.4.1AnimationDrawable与帧动画392
15.4.2播放Gif动画394
15.5补间(Tween)动画397
15.5.1移动补间动画397
15.5.2缩放补间动画399
15.5.3旋转补间动画402
15.5.4透明度补间动画403
15.6小结404
第16章有趣的Android应用405
16.1传感器405
16.1.1如何使用传感器405
16.1.2加速度传感器(Accelerometer)409
16.1.3重力传感器(Gravity)409
16.1.4光线传感器(Light)410
16.1.5陀螺仪传感器(Gyroscope)411
16.1.6方向传感器(Orientation)411
16.1.7其他传感器412
16.2输入输出技术413
16.2.1语音识别413
16.2.2手势输入415
16.2.3语音朗读(TTS)417
16.3Google地图419
16.4GPS定位423
16.5桌面上的小东西425
16.5.1窗口小部件(AppWidget)425
16.5.2快捷方式431
16.5.3实时文件夹433
16.6应用更华丽——动态壁纸435
16.7小结441
第三部分高级篇
第17章HTML5与移动Web开发444
17.1HTML5简介444
17.2HTML5精彩效果演示445
17.3HTML5在Android中的应用447
17.4HTML5的画布(Canvas)448
17.4.1Canvas概述448
17.4.2检测浏览器是否支持Canvas449
17.4.3在Web页面中使用Canvas450
17.4.4使用路径(Path)452
17.4.5设置线条风格453
17.4.6设置填充类型453
17.4.7填充矩形区域454
17.4.8使用渐变色(Gradient)454
17.4.9拉伸画布对象455
17.4.10在Canvas上绘制文本456
17.4.11使用阴影457
17.5调试JavaScript458
17.6小结459
第18章输入法开发460
18.1Android输入法简介460
18.2控制输入法461
18.3输入法实战462
18.3.1实现输入法的步骤463
18.3.2编写输入法程序463
18.3.3输入法服务的生命周期466
18.3.4预输入文本467
18.3.5输入法设置467
18.4小结468
第19章Android OpenGL ES开发基础469
19.1OpenGL简介469
19.2什么是OpenGL ES469
19.3多边形470
19.4颜色474
19.5旋转三角形475
19.6旋转立方体477
19.7小结478
第20章OpenGL ES的超酷效果479
20.1保持平衡的旋转文本479
20.2左右摇摆的Android机器人482
20.3纠缠在一起的旋转立方体485
20.4透明背景的旋转立方体486
20.5触摸旋转的立方体487
20.62D和3D的综合旋转效果489
20.7旋转立体天空491
20.8小结493
第21章Android NDK编程494
21.1Android NDK简介494
21.2安装、配置和测试NDK开发环境495
21.2.1系统和软件要求495
21.2.2下载和安装Android NDK495
21.2.3下载和安装Cygwin495
21.2.4配置Android NDK的开发环境498
21.3第一个NDK程序:世界你好499
21.3.1编写和调用NDK程序499
21.3.2用命令行方式编译NDK程序501
21.3.3在Eclipse中集成Android NDK502
21.4背景不断变化的三角形(NDK 版OpenGL ES)504
21.5使用NDK OpenGL ES API实现千变万化的3D效果507
21.6使用NDK调用音频API510
21.7本地Activity(Native Activity)511
21.8Android NDK配置文件详解513
21.8.1Android NDK定义的变量513
21.8.2Android NDK定义的函数514
21.8.3描述模块的变量515
21.8.4配置Application mk文件516
21.9小结516
第22章测试驱动开发(TDD)517
22.1JUnit测试框架517
22.2测试Activity517
22.3测试Content Provider521
22.4测试Service523
22.5测试普通类523
22.6小结525
第四部分综合实例篇
第23章Android综合案例一——蓝牙聊天528
23.1蓝牙聊天主界面528
23.2添加选项菜单530
23.3搜索和连接蓝牙设备530
23.4使设备可被其他蓝牙设备发现533
23.5发送和接收聊天信息533
23.6小结537
第24章Android综合案例二——月球登陆(游戏)538
24.1游戏的玩法538
24.2实现游戏界面539
24.3设置游戏难度540
24.4开始游戏541
24.5控制飞船喷火544
24.6控制飞船改变飞行方向544
24.7判断飞船是否成功着陆545
24.8小结546
第25章Android综合案例三——全键盘输入法(应用)547
25.1安装输入法547
25.2输入法的初始化工作548
25.3响应键盘操作549
25.4根据EditText控件的属性显示不同的软键盘551
25.5小结553
第26章Android综合案例四——贪吃蛇(游戏)554
26.1游戏玩法554
26.2游戏主界面设计555
26.3控制小蛇的移动557
26.4小结560
第27章Android综合案例五——新浪微博客户端(应用)561
27.1新浪微博简介561
27.1.1新浪微博客户端561
27.1.2新浪微博开放API563
27.2使用新浪微博开发API563
27.3创建和配置新浪微博客户端工程564
27.4登录新浪微博564
27.5功能按钮567
27.6显示“我的首页”的微博569
27.7评论微博572
27.8转发微博573
27.9写微博574
27.10小结576
第28章Android综合案例六——笑脸连连看(游戏)577
28.1游戏玩法577
28.2准备图像素材578
28.3实现主界面578
28.4随机生成连连看图像580
28.5选中两个相同图像后消失580
28.6用定时器限制游戏时间581
28.7小结582
D. 谁有安卓图标的素材集合
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
E. android psd素材怎么应用到界面的开发中变成PNG作为控件背景
首先是把素材,变为PNG。对于按钮,imageview之类的控件基本是作为控件背景,设置background就行了;但对于
radioButton
之类的直接把图片设置背景就会得不到想要的效果,可把图片放在style中来实现。并且有些背景需要.9后缀的图片,可随控件大小自动伸缩。
F. Android开发怎么让自己的APP UI漂亮,大方
UI界面大方漂亮,首先是功能的布局摆放,举个例子:哔哩哔哩手机app吧,觉得它还不错对吧,但是它几乎全套运用的MaterialDesign,这是谷歌设计工程师开发的界面设计语言,依照它的风格直接运用,这是让人看起来爽朗的。其次,不要再运用原生的android系统自带控件了,你直接调用button,它给的默认风格的按钮看起来真的不行,你可以找找第三方提供的素材库,这里我举个例子:阿里巴巴图库,里面的图标几乎都是当前主流的样式,我截个图看看他的样式里面全是矢量图,用起来效果也不错。多多运用第三方的吧,它们的都不错。
G. android开发图形类主要有哪些
Canvas类:
Canvas类代表画布,通过该类使用的方法,可以绘制各种图形(如矩形、圆形、线形)通常情况下,在Android中绘制图形需要先创建继承自View的类的视图,并且在该类中重写其OnDraw(Canvas canvas)方法,然后在绘制的Activity中添加该视图。
View:组件,理解为画布
Drawable:所有可见对象的描述,理解为:素材类;
Bitmap:图片类;
Canvas:画笔;
Paint:画笔样式与颜色、特效的集合;
对于Android UI开发自绘控件和游戏制作而言掌握好绘图基础是必不可少的有关OpenGL ES相关。
H. 怎样开发一个andriod应用
开发环境
Android应用层使用的开发语言是Java,自然需要用到Java运行环境,无论你在Window是系统还是Mac系统都需要安装JDK,并且配置它的环境变量,不懂什么叫环境变量的或者不知道怎么配的,请利用好自己的网络技能自行学习。
JDK下载
开发工具
开发工具,Android因为历史原因,前面很长一段时间使用的是Eclipse,我们要开发Android应用的时候需要另外安装Google为它开发的插件ADT,Eclipse这个开源软件很优秀,也很专业,但仅仅只是使用它来开发Android就显得有点鸡肋了,如果没有对Eclipse进行优化的话,会很卡很卡,后面Google实在不愿意寄人篱下,就专门为我们开发者开发了目前很受广大开发者推崇的Android Studio,现在2.0预览版也出来啦,大伙赶紧去下吧。
Android studio
模拟器
Android自带的模拟器一直广受诟病,实在是太卡太慢了,对比人家IOS模拟器是那么的流畅,Android开发者直喊好苦逼啊,不过还好后面出了第三方比原生流畅n倍的模拟器Genymotion,大家可以去下一个个人版的够你平时开发测试用了。最好的办法还是使用真机测试,毕竟真机才是真实的环境。
Genymotion
Android核心基础
前面是准备工作,想开发一款Android app,你最起码要掌握Android的核心基础知识,针对初学Android的童鞋,想一口吃掉一个胖子是不可能的,还是得把基础打牢之后才能完成独立的开发,Android入门不难,学完基础你只是具备开发app的基本条件,想做一个优秀的app还有很长一段路要走,经验是靠不断实践堆出来的,找一套系统的课程去认真学习一下,在线教育的资源很多,比如慕课网,极客学院都有很多不错的学习资源,童鞋自己择优来学习即可。
产品开发流程
正常的互联网开发app的流程大致如下:
产品规划,定产品方向
需求调研,产出需求文档
需求评审,修订需求文档
产品狗画app线框图提供给射鸡师
射鸡师根据线框图设计视觉稿
程序猿根据视觉稿搭建UI框架
程序猿根据需求文档开发功能
测试媛编写测试用例,根据排期进行测试
程序猿修复回归测试反馈的bug,提交beta版
测试通过,提交给运营喵发布到渠道上线
上面是笔者的经验总结,可能有不太准确的地方,但大致整个流程是这样,我们开发者要清楚自己在整个产品中充当的角色,明白自己的工作职责即可。
快速搭建项目
Android比没有想象那么难,只是刚开始要学习的东西多,一下子消化不了才会比较茫然,笔者写这篇博客就是想帮助大家整理一下开发思路。
快速搭建项目也算是一项技能,而这项技能只能由你自己来完善,刚开始做开发的时候一定会有很多重复性的工作,如果没有意识去提高自己的开发效率的话,可能你的十年工作经验代表的只是一年的经验用了十年而已。
那要怎么做,笔者提供一个自己总结的,仅供参考:
定开发规范
搭建UI框架
选用开发库集成(或自造轮子)
第三方服务集成(视情况而定)
定开发规范
一个项目一般不会只有一个人独立开发,就算是独立开发,我们也应该定一下开发规范,一般会有什么样的规范?
命名规范
代码规范
代码管理规范
命名规范
命名规范包括:
项目命名
包命名
类命名、成员变量命名
资源文件命名
我们做每一个产品都会有相应的命名,不要用中文来命名,最好用能表达中文意思的英文来表示,例如CSDN客户端,可以用CSDNClient作为命名,我们创建项目的时候可以以它作为Application name。
代码规范
代码规范视语言而定,开发android使用的是Java,自然要按照Java的编码规范进行编码,比如命名采用驼峰命名法,编码的时候也要符合Android的开发规范,比如UI线程不做任何耗时的操作,像网络请求、数据库操作都需要放到子线程中去做,只有UI的刷新才在UI线程中做,像这些规范,可以根据自身在项目遇到的问题来定,定规范的好处就是减少踩坑的几率,提高开发的质量。
代码管理
对于一个经常更新迭代的产品,不可能由头到尾不变,这个时候我们需要对代码进行分支管理,最好使用git代码仓库对代码进行管理,作为一个合格的开发者连git都不用实在说不过去,还用svn的童鞋赶紧放弃它投入git的怀抱,它的好处是不言而喻的,自己去体会。
搭建UI框架
搭建UI框架需要我们根据产品的导航模式来设计,市场上常用的导航模式有如下图几种:
app导航
我们的app如果不出意外一定是其中的一种导航模式,一般线框图出来我们就应该知道即将要开发的app长什么样子,开发者不必等视觉稿和素材出来才开始动工,我们先大致搭个架子,等视觉稿出来之后我们再做调整。
选用开发库
一般我们app涉及到的库会有:
UI框架(比如下拉刷新PullToRefresh、侧滑菜单Slidingmenu)
网络请求库(比如okhtttp、AndroidAsyncHttp、Volley)
数据操作库(比如GreenDao、Ormlite)
图片缓存框架(比如Universal-Imageloader)
数据解析库(比如Gson)
之所以要选用这些库,肯定是为了避免重复造轮子,在开发效率的角度来说,选用优秀的开源库能大大缩短开发周期和提高开发效率,但从个人提升角度来看的话,我们可能就成了一个只会用API的程序猿了,如果想提升的话,造轮子或者分析这些优秀的源代码是一个不错的途径。
第三方服务集成
我们开发app的时候,肯定会遇到一些需求,比如推送的需求、自动升级、数据统计、社会化分享、用户反馈等等,然而对于一个刚起步的企业或者个人开发者的话,全都要自己去开发的话,那岂不是累死,像推送这种有一定的技术门槛,能做好都能成立一家公司了,所以选用一些第三方服务是一个可选之举。如果说你以后做大了,用第三方怕不好控制,那就自己做呗,有钱任性招兵买马就自己做,谁叫咱有钱呢。
前面这些东西开发一个app够了,开发出来能不能用还得有靠谱的测试,有没有crash,操作流不流畅,体验好不好才会有用户去用。这里不从产品的角度去评判一个app的好与坏,程序员要考虑的是从代码层面、性能层面去让我们的app变得更好。
打包上线
前面的开发环节、测试环节都没问题之后,你离实现一个app的完整开发就不远了,正常的互联网公司,会把签名打包的apk给到运营,交给他们去写文案,上传到应用渠道,让渠道给我们去首发和推广。如果是个人开发者,这些工作就得我们自己做了。
I. 谷歌有提供android开发规范相关的文档吗
谷歌Android L给安卓系统带来了全新的设计哲理——Material Design,并且希望将其运用到谷歌以后的所有产品中。 Material Design是介于拟物化和扁平化之间的,它强调了物理定律的扁平化设计,这体现在它的阴影和动画中,同时有保留了其写意化的外观设计风格。9个优质的Android L界面设计素材分享 谷歌是这样介绍的:“设计是创造的艺术,我们的目标就是要满足不同的人类需要。人们的需要会随着时间发展,我们的设计,实践,以及理念也要随之提 升。我们在自我挑战,为用户创造了一个可视化语言,它整合了优秀设计的经典原则和科学与技术的创新。这就是Material Design。” 看完下面这段视频,你会深刻的理解安卓Material Design设计风格的现在和未来。 目前国内很多优秀的APP设计师开始按照安卓Material Design的设计规范来设计新的安卓APP啦。 第一部分:安卓Material Design的设计规范 优秀的Material Design设计规范中文版重点推荐:Material Design 中文版 这支视频时长大约 8 分钟,如果你是一名安卓开发者或是安卓界面设计师,都可以通过视频进行更加直观的了解。 Material Design 另一条规范是界面设计要大胆。另外,色彩面积与色彩浓度也很重要,比如大面积色彩浓度需要与小面积同色彩浓度区分开来,以蓝色为例,小面积色彩可使用靛蓝色,大面积则使用深蓝色,另一个区域则可以使用天蓝色。 说到色彩和区域,Roman Nurik 还介绍了不同区域,不同部分使用不同的颜色来相称。另外,网页的布局,比如标题和文字的排版也都有一定的隐藏原则。 第二部分:跟随25学堂来了解安卓Material Design的设计原则 1、材料是个隐喻材料隐喻是合理空间和动作系统的统一理论。谷歌所谓的“材料”是基于触觉现实,灵感来自于对于纸张和墨水的研究,也加入了想象和魔法的因素。 2、表面是直观和自然的表面和边缘为现实经验提供了视觉线索。使用熟悉的触觉属性,可以直观地感受到使用情景。 3、维度提供交互光、表面和运动是展现交换的关键因素。逼真的光影效果显出了各部分分离,划分了空间,指示了哪些部分可以进行操作。 4、适应性设计底层设计系统包括了交互和空间两部分。每一个设备都能反映出同一底层系统的不同侧面。每一设备的界面都会按照大小和交互进行调整。只有颜色,图标,层次结构和空间关系保持不变。 5、目录用黑体和图形设计,并带有意图黑体能突出层次、意义,显现焦点。深思熟虑的色彩选择,层次分明的图像,大范围的铺陈和有意的留白可以创造出浸入感和也能让表达更清晰。 6、颜色、表面和图标都强调动作效果用户行为就是体验设计的本质。基本动作效果是转折点,他们可以改变整个设计,可以让核心功能变得更加明显,更为用户指明了“路标”。 7、 用户发起变化操作界面中的变化来自于用户行为。用户触摸操作产生的效果要反应和强化用户的作用。 8、 动画效果要在统一的所有动画效果都在统一的环境下显示。即使发生了变形或是重组,对对象的呈现也不能破坏用户体验的连续性。 9、动作提供了意义动作是有意义的,而且是恰当的,动作有助于集中注意力和保持连续性。反馈是非常微妙和清晰的,而转换不仅要有有效率,也要保持一致性。
J. android开发 如何定义UI素材的尺寸
看手机的分辨率和尺寸。android 项目框架中 在 res 文件夹下面有 drawable-hdpi drawable-ldpi drawable-mdpi drawable-xhdpi drawable-xxhdpi,主流就是 hdpi 中等精度的屏幕。以主流 hdpi 为标准,设计 UI 素材的尺寸。然后 在此基础上,来设计更高精度的图片。
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // 屏幕宽度(像素)
int height = metric.heightPixels; // 屏幕高度(像素)
float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
一般按照屏幕密度来设置你的图片尺寸。