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)
一般按照屏幕密度來設置你的圖片尺寸。