標籤:

打算做一款 Android APP,想了解一些移動開發中伺服器端開發的技術,如果用python開發採用哪個框架及相應的技術?

本人對服務端的開發了解的比較少,不知道大俠們推薦學習些什麼技術,看些什麼書,或者是好的建議?

還有目前的主流的app的服務端都用的是什麼技術、框架,如果用python開發採用哪個框架及相應的技術?

先謝謝各位的回答!


我不是大俠,以下是個人拙見,歡迎批評指正:

首先,服務端開發涉及到的東西比較多:

1、操作系統

操作系統現在的情況是三分天下:unix、linux、windows。建議學習linux,主要是掌握基本的伺服器管理與配置命令,能夠編寫shell腳本進行部署以及自動化管理等。

2、伺服器

Nginx、Apache都是常見的伺服器。這兩個伺服器各有各的特點,我這裡不能說哪個一定比哪個好。網上也有很多對這兩個服務性能的對比與討論可供參考。

3、資料庫

資料庫有Mysql、Oracle、SQL server等這些都是關係型資料庫,還有非關係型資料庫:memcached、mongodb、redis等。建議了解各種資料庫的特點,根據自己的業務模型,選擇最優的搭配。

4、開發語言

開發語言有很多python、php、perl、c++、java...基本上大部分語言都可以開發後台。每種語言都有自己的特點與框架,像這些語言都有很多公司用。

據我所知,使用python作為後台開發的有知乎、豆瓣、quora,而且現在大部分的新型互聯網公司都傾向於使用python作為後台的開發語言。

python作為後台開發主要是可以實現快速的開發,同時可供選擇的開發框架也有很多,比如:flask、django、tornado、bottle等。建議了解這些框架的特點。

5、TCP/IP協議

了解基本的協議:HTTP、DNS、SMTP、SNMP。。。

6、數據交換格式

protobuf、json、xml。。。

這裡面最節約空間與速度最快的是protobuf,一般使用json就好了,json的在空間與速度上都優於xml。如果是特別追求節約空間與速度就使用protobuf。

...

主流的app的服務端:

應該沒有所謂的主流吧 - - 我只知道instagram使用了nginx、django、Gunicorn。。。

像instagram這麼多用戶的應用後台絕對不是這麼簡單。What Powers Instagram: Hundreds of Instances, Dozens of Technologies這篇文章是他們公布的架構,可供參考,另外網上也有一些逼人翻譯與分析的文章。

最後說下我的用法:

目前使用nginx+uWSGI+flask

flask是python的一個輕量級框架,上面有介紹。

nginx主要是處理靜態的請求,動態的交給uWSGI。

uWSGI是一個伺服器,使用它可以很方便的部署python應用,而且處理速度也比較快。

網上可以找到很多關於nginx+uWSGI+flask的配置介紹。


一般App都是需要和伺服器交互的,App開發者特別是個人開發者是需要掌握一門伺服器端編程技術的。

常見的伺服器端編程技術有.net Java php python 等等

既然題主提到Android App,你不如去學習Java伺服器端編程。

先系統的學習一下Servlet,安裝運行Servlet的容量Tomcat

還得學習一下資料庫,推薦MySql,練習簡單的增刪查改語句

學習Java連接資料庫的方法JDBC

伺服器與App交互數據推薦使用JSON

PS:手機打字,先說這麼多,要是有疑問,請評論留言


做adnroid app 跟你了解伺服器開發技術沒有半點關係。

技術選型關鍵看2點:

1、從業務需求,得出技術架構。

2、你擅長的技術

我覺得你的問題上述2點都沒涉及到,無法回答你的問題。

ps:幹嘛聊python,如果node.js你擅長的話,完全可以搞定。


你不說需求和應用場景,下面的回答也只能是告訴你一些「邏輯上完全正確但毫無意義的話」了。

我倒是有個建議,既然你打算做一個app,並且寫後端的server,倒是可以先了解一下OAuth2.0, 然後 ***先寫出詳細的RESTFUL的API介面文檔***, 後端找一個糙猛快的python框架實現你的介面,後期你的用戶增加、服務壓力增大,再考慮怎麼讓它變快。


各位大俠,我是新手。但是我說一下我的意見,APP的開發分成2種不同類型的APP。一種類型是native app,一種類型是 c/s 架構的類型。顧名思義,Native APP是完全運行在操作系統上的一種軟體,不涉及到開發相關的類庫和網路協議,就如同office軟體運行在weindows操作系統上一樣。c/s架構的APP與Native app是不同的,因為這種APP 在手機客戶端只是相當與一種UI界面,只是調用一些操作系統提供的網路協議方面的服務,至於其他的是不提供的!!所以APP的的開發和我們實際的c/s上面的開發是沒有多大的區別的,主要是要明白則那樣那個的業務和需求是最關鍵的!!!


可以考慮 nginx+Tornado+mongodb這一個架構,在設置網頁時,確保其響應性(能夠適合屏幕大小自動響應尺寸以及布局),這樣web和手機就可以通吃了。還可以考慮使用HTML5。


作為一個正在做Android APP科創的大學生,菜鳥我要第一次回答問題啦 首先不管是想要開發NATIVE APP還是WEB APP,伺服器都是主要做HTTP響應的,都可以當成WEB 伺服器來做,小型伺服器推薦選擇LINUX+Nginx+MariaDB+PHP開發,伺服器要做的具體的話就是處理GET請求,或POST互傳JSON數據。我們就是用PHP開發的,簡單易用。Python的話不了解,不過據說效率低於PHP。


推薦閱讀:

如何判斷Android設備是真機還是模擬器?
Windows Phone 和 Android 手機哪個更適合父母使用?
現在學習安卓還有錢途嗎?
如何評價 Google 的 Nexus 系列手機?
當你掌握什麼Android技能時,面試官會非常想要你?

TAG:Python | Android |