日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747



1,Android UI體系

1) 三層架構、MVC、MVP、MVVM

對于小項目可以按如下分法(mvp選用);對于大項目可以按模塊分,然后模塊內再按如下分發(fā)。

分包(按功能分):

basal:基類;

surface(fragment、activity、broadcast、listener):界面類;

adapter:適配器類;

mvp(presenter、constract、view):mvp層類;

util:通用工具類;

widget:自定義View類;

entity:實體類;

Config.class

MyApplication

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2)xml(Extensible Markup Language,可擴展標記語言)

字體一般是34px、30px、28px、26px、24px、22px

小細線1px dddddd 粗線10px f5f5f5 背景色f5f5f5、app的左右距離是20px

主題色

3)控件

①View

【Android學習】android.view.ViewStub

【android學習】EditText

【android學習】Toast(消息彈框)

【android學習】Dialog對話框

【android學習】webView(網絡視圖)

【Android學習】列表(ListView、RecyclerView)和adapter

【Android學習】android.view.ViewStub

【Android學習】Android常用框架

②標題欄

4)Window和WindowManager

5)圖片

①Drawable

②Bitmap的加載和Cache

6)動畫

7)Splash界面

①作用

展現產品的logo

初始化操作(創(chuàng)建數據庫,讀取配置文件)

連接服務器檢查軟件授權

連接服務器檢查軟件的更新

②實現

用handler延遲,在SplashActivity界面中寫如下代碼 ,并禁用返回鍵。

private final int SPLASH_DISPLAY_LENGHT = 3000;

……

handler = new Handler();

// 延遲SPLASH_DISPLAY_LENGHT時間然后跳轉到MainActivity

handler.postDelayed(new Runnable() {

@Override

public void run() {

Intent intent = new Intent(SplashActivity.this,

MainActivity.class);

startActivity(intent);

SplashActivity.this.finish();

}

}, SPLASH_DISPLAY_LENGHT);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2,Android基礎

1)四大組件-Activity

①Fragment相關

2)四大組件-Service

3)四大組件-Content Provider

4)四大組件-BroadcastReceiver(廣播接收者)

5)重要組件-intent

6)Context類和Application類

7)【Android學習】Android Studio學習

項目結構

gradle

jar和arr

8)Android系統(tǒng)優(yōu)缺點

五大不足:

①安全與隱私

②首先開賣Android手機的不是最大運營商

③運營商仍然能影響到Android手機

④同類機型用戶減少:缺少統(tǒng)一機型的程序

⑤過分依賴開發(fā)商缺少標準配置:開發(fā)依賴第三方,缺少產品統(tǒng)一性。

優(yōu)點:

①市場份額大

②應用程序發(fā)展迅速

③智能廠家助力

④手機價廉但性能不低

⑤機型多,硬件配置優(yōu)

⑥系統(tǒng)開源:利于創(chuàng)新,開發(fā)者多,方便開發(fā)。

9)常用Manager

3,Android底層

1)存儲方式(數據持久化)

數據持久化:將內存中的數據模型轉化為存儲模型。、

其他存儲方式:

redis:一個開源使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫。

sessionStorage:生命周期為當前窗口或標簽頁,一旦窗口或標簽頁被永久關閉了,那么所有通過sessionStorage存儲的數據也就被清空了。

file, sqlite3, Preferences, ContentResolver與ContentProvider前三種數據操作方式都只是針對本應用內數據,程序不能通過這三種方法去操作別的應用內的數據。

①SQLite數據庫

存儲結構化數據。

②File(文件存儲、I/O存儲)

常用語存儲大數量的數據,但是缺點是更新數據將是一件困難的事情。

分為內部存儲和外部存儲(SD卡)兩種存儲方式。

File.mkdirs和File.mkdir的區(qū)別

File.mkdirs在多層目錄底下創(chuàng)建文件。

File.mkdir能在二層目錄只能一層創(chuàng)建文件,僅能在已有目錄下創(chuàng)建. 對于路徑實際不存在的,調用File.mkdirs()方法。

③SharedPreferences

本質就是一個xml文件,常用于存儲較簡單的參數設置。

共享參數,鍵值對形式存儲。

④網絡存儲

將數據存儲到服務器上。

⑤ContentProvider存儲

查看四大組件-Content Provider。

ContentProvider的目的是對外暴露數據供其他程序查詢。

每個Content Provider都會對外提供一個公共的URI(包裝成Uri對象),如果應用程序有數據需要共享時,就需要使用Content Provider為這些數據定義一個URI,然后其他的應用程序就通過Content Provider傳入這個URI來對數據進行操作。

2)【JAVA學習】Java內存

3)【Android學習】DVM——apk生成、安裝、啟動、反匯編

4)【Android學習】NDK編程——JNI(Java Native Interface,java本地接口)編程

5)【Android學習】Android安全機制

6)【Android學習】Android系統(tǒng)架構

4,進程和同步

1)【android 】進程、守護進程的實現及進程拉活

2)【java學習】進程、線程、程序

3)【Android學習】IPC(跨進程通信,Inter-Process Communication)

4)【Android學習】Android網絡:Socket、HTTP

①socket傳輸中,流的關閉

②android端通過socket接收到數據產生亂碼

③socket ECONNRESET 異常

④socket長連接,造成數據粘包問題

⑤【Android學習】斷線重連、長連接心跳機制

5)【Android學習】序列化:Serializable和Parcelable

6)【Android學習】消息機制Handler

7)【Android學習】線程的其他方式:AsyncTask、IntentService、HandlerThread、ThreadPoolExecutor

8)【java學習】多線程并發(fā)

9)【java學習】java鎖

10)資源池

Android中提供了資源池的對象有:

–Message

提供了消息池,有靜態(tài)方法Obtain從消息池中取對象。

–AsynTask

AsynTask是線程池改造的,池里 默認提供(核數+1)個線程進行并發(fā)操作,最大支持(核數 * 2 + 1)個線程,超過后會丟棄其他任務。

–ThreadPool

Thread默認不提供資源池,除非使用線程池ThreadPool管理。

對于Looper,每個Looper創(chuàng)建時創(chuàng)建一個消息隊列和線程對象,但不是資源池。

5,數據結構和算法

【數據結構】排序算法

【數據結構】查找

【數據結構】樹

【數據結構】圖

【數據結構】數組

【數據結構】隊列和棧

【數據結構】線性表:順序表、單鏈表

【算法】電梯調度算法/磁盤掃描算法

6,設計模式

編程素質】多線程編程之設計模式

1.復合模式:三層架構、MVC、MVP、MVVM

2.設計模式-單例模式

配置類的使用。

3.設計模式-模板方法

通過抽象類或接口提前定義要實現的方法。

4.設計模式-觀察者模式

消息的通知。

5.設計模式-裝飾模式:處于安全目的,保護被訪問者

對一個已有的接口進行功能擴展。

如,繼承父類,并增加擴展新的方法。

6.設計模式-策略模式

MVC中:

控制器是視圖的策略。

視圖只關心系統(tǒng)中可視的部分,對于任何界面行為,都委托給控制器處理。

控制器負責和模型交互來傳遞用戶請求,對于工作是怎么完成的,視圖毫不知情。

7.設計模式-工廠模式(Factory Pattern)、 控制反轉(IoC)與依賴注入(DI)

簡單工廠、工廠方法、抽象工廠。創(chuàng)建新對象。

8.設計模式-命令模式

支持撤銷。

9.設計模式-適配器模式(Adapter)

adpater的使用。

10.設計模式-外觀模式

如用一個spManager管理所有的sp對象獲得的數據。

11.設計模式-橋接模式

將抽象化(Abstraction)與實現化(Implementation)脫耦,使得二者可以獨立地變化。

舉例:汽車和公路問題。

12.設計模式-代理模式(委托模式、Proxy Pattern):動態(tài)擴充對象功能

傳入對象,并調用對應的方法。如接口回調。

13.迭代器模式

Iterator。

14.組合模式(合成模式)

允許將對象組合成樹形結構來表現“整體/部分”層次結構。樹節(jié)點可以對子節(jié)點進行增刪改查等操作。

View和ViewGroup就是一種很標準的組合模式。

15.狀態(tài)模式

機器取糖果,允許對象在內部狀態(tài)改變時改變它的行為,對象看起來好像修改了它的類。

16.生成器模式Builder Pattern

如AlertDialog.Builder。

17.責任鏈模式

經常被使用在窗口系統(tǒng)中,處理鼠標和鍵盤之類的事件。

18.蠅量模式Flyweight Pattern

19.解釋器模式Interpreter Pattern

20.中介者模式Mediator Pattern

21.備忘錄模式MementoPattern

當你需要讓對象返回之前的狀態(tài)時(例如:用戶請求撤銷操作),就使用備忘錄模式

22.原型模式Prototype Pattern

23.訪問者模式Visitor Pattern

7,網絡基礎、操作系統(tǒng)基礎

【網絡基礎】TCP/UDP

【數據結構】位運算

【網絡基礎】IP計算

8,數據庫

9,java基礎

【java學習】java基礎語法

【java學習】String字符串

【java學習】類Class

【java學習】集合框架

【java學習】JVM學習

【java學習】面向對象三大特性:封裝,繼承,多態(tài)

【Android學習】緩存

【java學習】修飾符

【java學習】數據類型

【java學習】裝箱與拆箱、泛型

【java學習】異常

【java學習】反射機制

【java學習】java基礎語法

【java學習】正則表達式(Regular Expression)

【java學習】Json框架

【Java學習】JAVA和C++區(qū)別

10,Android性能優(yōu)化

1)布局優(yōu)化、自定義View優(yōu)化

刪除布局中無用的控件和層級

有選擇地使用性能較高的ViewGroup

用<include>標簽、<merge>標簽、ViewStub

2)activity啟動優(yōu)化

耗時操作優(yōu)化

布局文件優(yōu)化

視圖加載優(yōu)化。如:Fragment的懶加載,只有顯示時才去加載。

3)列表優(yōu)化

盡量復用convertview歷史的緩存,減少創(chuàng)建新的view對象。

盡量的減少子孩子的id的查詢次數,定義一個viewHolder。

4)內存優(yōu)化

5)圖片緩存

圖片的三級緩存機制

11,項目管理

項目管理-Git使用

項目管理-SVN學習

12,應用

1)token登錄

①定義

Token是服務端生成的一串字符串,以作客戶端進行請求的一個令牌,當第一次登錄后,服務器生成一個Token便將此Token返回給客戶端,以后客戶端只需帶上這個Token前來請求數據即可,無需再次帶上用戶名和密碼。

②作用

Token的目的是為了驗證用戶登錄情況以及減輕服務器的壓力,減少頻繁的查詢數據庫,使服務器更加健壯。

Token是在客戶端頻繁向服務端請求數據,服務端頻繁的去數據庫查詢用戶名和密碼并進行對比,判斷用戶名和密碼正確與否,這樣增加了服務器負擔。

③應用

i>用戶首次登錄成功之后, 服務器端就會生成一個 token 值,保存在數據庫并返回給客戶端.

ii>客戶端拿到 token 值之后,使用sp進行保存。

iii>客戶端再次發(fā)送網絡請求(一般不是登錄請求)的時候,就會將這個 token 值附帶到參數中發(fā)送給服務器.

iv>服務器接收到客戶端的請求之后,取出token值與保存在本地(數據庫)中的token值做對比

如果兩個 token 值相同, 說明用戶處于登錄狀態(tài)。

如果沒有這個 token 值, 沒有登錄成功。

如果 token 值不同: 說明原來的登錄信息已經失效,讓用戶重新登錄。

2)登錄驗證

通過.requestFocus()獲得焦點,提高用戶體驗

String Str_name = et_username.getText().toString().trim();

String Str_psw = et_password.getText().toString().trim();

if (null != Str_name && Str_name.equals("")) {

showCustomToast("用戶名不能為空");

et_username.requestFocus();

} else if (null != Str_psw && Str_psw.equals("")) {

showCustomToast("密碼不能為空");

et_password.requestFocus();

} else if (Str_psw.contains("卍")) {

showCustomToast("密碼不能含有特殊字符");

et_password.requestFocus();

} else if (Str_psw.length() < 6) {

showCustomToast("密碼不能少于6位");

et_password.requestFocus();

} else {

tryLogin(Str_name, Str_psw);

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

3)GPS開啟

檢測GPS是否開啟,如果沒有則跳到GPS界面供用戶開啟。

LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);

// 判斷GPS是否正常啟動

if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {

ToastUtil.showShort(context, "未開啟位置服務,請開啟GPS導航");

// 返回開啟GPS導航設置界面

Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivityForResult(intent, 0);

return;

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4)其他demo

android離線日志文件打印

檢測android主屏,并把app從后臺切換置前臺

保持屏幕常亮

斷線重連機制

13,問題解決

1)eclipse找不到設備,adb需要重啟

寫一個.bat文件,內容如下:

(注意:cd /d D:android-sdksplatform-tools 請?zhí)鎿Q為自己的adb.exe路徑)

@echo off

taskkill /F /IM adb.exe

echo Kill完成...

pause

echo 重啟開始...

cd /d D:android-sdksplatform-tools

adb devices

pause. & exit

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2)其它

①android中使用Menu時可能需要重寫的方法有:onCreateOptionMenu()和onOptionItemSelected().

②eclipse編輯器亂碼解決

configChanges詳解-之解決問題:手機切換字體后,app異常崩潰

eclipse創(chuàng)建app時多出appcompat_v7

android開發(fā)誤刪appcompat_v7

Replace “…” with ellipsis character (…, &&;#8230;) ?

eclipse ‘Launching Hello’has encountered a problem

 

分享到:
標簽:android
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰(zhàn)2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定