Ⅰ 在android系統中如何實現開發論壇應用
是想做論壇的手機客戶端吧,手下你先做前端,參考各個流行的論壇架構,也可以去安卓巴士和eoe論壇上賣弄找源碼,應該可以找的到,逛論壇的時候看見過。然後就是需要架設伺服器,配置伺服器什麼的是很大一塊,前端設計夠你做很長時間的了,伺服器的話配置你上網找找,資料庫軟體最好用SQLserver2008或者最新的都可以。
建議在eclipse上面做界面,然後再寫類的代碼,吧前端做完了以後涉及到通信方面的就該去架設伺服器了。一個人你是肯定搞不完的,要是一個團隊的話,最少要三個人,一個程序員也就是前端,一個美工,一個做資料庫和伺服器的。
Ⅱ android輸入法開發,最開始編寫的時候必須要寫的有什麼內容
參考開源的輸入法程序:
這個是個日語輸入法
初步學習:-1個月
1.去電驢上下一份mars的視頻。先淺淺的了解下android應用開發、整體架構和思路。mars的視頻做的挺不錯。
2.在eclipse中導入api demos。在手機/模擬器上運行apidemos,裡面的實例非常棒。可以把例子中涉及到項目的地方標注下,然後著重看看這部分的代碼.
逐漸深入:-3個月
1.有選擇的閱讀android api中的Dev Guide部分。
2.閱讀android中的resources部分。
上面的文章比較多,也不需要全部閱讀。只是在做過初步工作後,有選擇性的著重看一些相關內容。相關內容應該不僅僅包括項目直接相關的,還包括一些平台基礎知識。這些東西應如何選擇是在初步學習階段中應該明確的。
3.有空上上android相關比較好的社區,看看高手總結。如eoe、bus之類的。
准備階段:-3個月
閱讀開源的項目。
樓下有的朋友也提了一些建議。我覺得都挺好的,到了這個時候就該開始閱讀源碼進行學習了。
這里的關鍵在於慢慢扣源碼,先找容易看到的類。看著注釋慢慢理解,碰到不熟悉的類就查android的api。
閱讀是個長期的過程,然後必須要產生一些成果:
a.與輸入法相關的關鍵介面有哪些?關鍵類有哪些,職責是什麼?
b.輸入法的架構是怎樣的?組件之間如何交互?
c.數據從哪裡來?如何進行組織?
3.開發階段:
迭代開發。從最小的原型開始做起。
最小原型包括:最基本的輸入法功能,輸入字母,確定輸入,顯示字典,選擇完成輸入。最基礎的測試數據。
在完善輸入法基本功能上迭代開發。包括聯想輸入,更智能的分詞,以及符號和手寫識別等。還有ui美化等等。
既然你這邊有學c的同學,那麼在一些關鍵瓶頸方面。也可以使用NDK做後續優化。
Ⅲ android的toast怎麼自定義顯示時間長度
Android中Toast的顯示時間為特定時間且不可更改,但是有時候我們開發設計需要讓Toast顯示更長時間,或者自己完全控制Toast的顯示和關閉。通過查看Toast類的源碼,可以看出,這有點難為它了,Toast類本身並沒有提供相應方法。
但是通過源碼的查看,還是可以看出點眉頭。源碼分析思路在這里轉eoe里的一篇文章,思路較為清晰:
轉:
Toast信息提示框之所以在顯示一定時間後會自動關閉,是因為在系統中有一個Toast隊列。系統會依次從隊列中取(出隊列)一個Toast,並 顯示它。在顯示一段時間後,再關閉,然後再顯示下一個Toast信息提示框。
直到Toast隊列中所有Toast都顯示完為止。那麼有些時候需要這個Toas t信息提示框長時間顯示,直到需要關閉它時通過代碼來控制,而不是讓系統自動來關閉Toast信息提示框。
不過這個要求對於Toast本身來說有些過 分,因為Toast類並沒有提供這個功能。雖然如此,但方法總比問題多。通過一些特殊的處理還是可以實現這個功能的,而且並不復雜。
Toast信息提示框需要調用Toast.show方法來顯示。下面來看一下show方法的源代碼。
public void show() {
if (mNextView == null) {
throw new RuntimeException("setView must have been called");
}
INotificationManager service = getService();
String pkg = mContext.getPackageName();
TN tn = mTN;
try {
// 將當前Toast加入到Toast隊列
service.enqueueToast(pkg, tn, mDuration);
} catch (RemoteException e) {
// Empty
}
}
復制代碼
show方法的代碼並不復雜,可以很容易找到如下的代碼。
service.enqueueToast(pkg, tn, mDuration);
復制代碼
從上面的代碼可以很容易推斷出它的功能是將當前的Toast加入到系統的Toast隊列中。
看到這里,各位讀者應該想到。雖然show方法的表面功能是顯示Toast信息提示框,但其實際的功能是將Toast加入到隊列中,再由系統根據Toast隊列來顯示Toast信息提示框。那麼我們經過更進一步地思考,可以大膽地做出一個初步的方案。
既然系統的Toast隊列可以顯示Toast信息提示框,那麼我們為什麼不可以自己來顯示它呢?
這樣不是可以自己來控制Toast的信息提示框的顯示和關閉了嗎!當然,這就不能再調用show方法來顯示Toast信息提示框了(因為show方法會將Toast加入隊列,這樣我們就控制不了Toast了)。
既然初步方案已擬定,現在就來實施它。先在Toast類找一下還有沒有其他的show方法。
結果發現了一個TN類,該類是Toast的一個內嵌類。在TN類中有一個show方法。TN是ITransientNotification.Stub的子類。從ITransientNotification和TN類中的show方法初步推斷(因為Transient的中文意思是「短暫的」)系統是從Toast隊列中獲得了Toast對象後,利用TN對象的show方法顯示Toast,再利用TN.hide方法來關閉Toast。
首先聲明,這只是假設,我們還不知道這么做是否可行!當然,這也是科學研究的一般方法,先推斷或假設,然後再證明推斷或假設。
現在關鍵的一步是獲得TN對象。遺憾的是TN被聲明成private類型,外部無法訪問。不過別著急。在Toast類中有一個mTN變數。雖然不是public變數,但仍然可以通過反射技術訪問該變數。mTN變數會在創建Toast對象時初始化。
因此,只要獲得mTN變數,就獲得了TN對象。下面的代碼顯示了一個永遠不會自動關閉的Toast信息提示框。
// 先創建一個Toast對象Toast toast = Toast.makeText(this, "永不消失的Toast", Toast.LENGTH_SHORT);// 設置Toast信息提示框顯示的位置(在屏幕頂部水平居中顯示)toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0);try{
// 從Toast對象中獲得mTN變數Field field = toast.getClass().getDeclaredField("mTN");
field.setAccessible(true);
Object obj = field.get(toast);
// TN對象中獲得了show方法
Method method = obj.getClass().getDeclaredMethod("show", null);
// 調用show方法來顯示Toast信息提示框
method.invoke(obj, null);
}
catch (Exception e)
{
}
復制代碼
上面的代碼中try{…}catch(…){…}語句中的代碼是關鍵。先利用事先創建好的Toast對象獲得了mTN變數。然後再利用反射技術獲得了TN對象的show方法。
關閉Toast和顯示Toast的方法類似,只是需要獲得hide方法,代碼如下:
try
{
// 需要將前面代碼中的obj變數變成類變數。這樣在多個地方就都可以訪問了
Method method = obj.getClass().getDeclaredMethod("hide", null);
method.invoke(obj, null);
}
catch (Exception e)
{
}
復制代碼
上面的代碼已經很完美地實現了通過代碼控制Toast信息提示框顯示和關閉的功能。
但如果想實現得更完美,可以在Android SDK源代碼中找一個叫ITransientNotification.aidl的文件(該文件是AIDL服務定義文件,將在後面詳細介紹),並在Android工程的src目錄中建一個android.app包,將這個文件放到這個包中。
然後ADT會自動在gen目錄中生成了一個android.app包,包中有一個ITransientNotification.java文件。由於Android SDK自帶的ItransientNotification介面屬於內部資源,外部程序無法訪問,因此,只能將從Toast對象中獲得的mTN變數轉換成剛才生成的ITransientNotification對象了。
這樣就不需要使反射技術獲得show和hide方法了。
經過改良的顯示和關閉Toast信息提示框的代碼如下:
ITransientNotification notification = (ITransientNotification) field.get(toast);
// 顯示Toast信息提示框
notification.show();
// 關閉Toast信息提示框
notification.hide();
復制代碼
最後整理代碼如下:
Java代碼
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class TestToastActivity extends Activity {
private Button showtoast,closetoast;
private Toast toast;
private Field field;
private Object obj;
private Method showMethod,hideMethod;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化按鈕組件
showtoast = (Button)this.findViewById(R.id.showtoast);
closetoast = (Button)this.findViewById(R.id.closetoast);
//設置組件監聽
showtoast.setOnClickListener(new MyOnClickListener());
closetoast.setOnClickListener(new MyOnClickListener());
//創建Toast對象
toast = Toast.makeText(this, "Toast自定義顯示時間測試", 1);
toast.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL, 0, 0);
//利用反射技術拿到mTN對象
reflectionTN();
}
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.showtoast:
try {
showMethod.invoke(obj, null);//調用TN對象的show()方法,顯示toast
} catch (Exception e) {
e.printStackTrace();
}
break;
case R.id.closetoast:
try {
hideMethod.invoke(obj, null);//調用TN對象的hide()方法,關閉toast
} catch (Exception e) {
e.printStackTrace();
}
break;
default:
break;
}
}
}
private void reflectionTN() {
try {
field = toast.getClass().getDeclaredField("mTN");
field.setAccessible(true);
obj = field.get(toast);
showMethod = obj.getClass().getDeclaredMethod("show", null);
hideMethod = obj.getClass().getDeclaredMethod("hide", null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
復制代碼
Ⅳ Android 開發源代碼在哪找
是指哪一種?是開源框架,還是別人做的一些demo,還是google提供的api 源碼,前一種的話各種開發論壇,像csdn,51cto,eoe,安卓bus都有,後一種的話可以通過sdk,或者用github去google上面下載
Ⅳ android是用什麼軟體開發的
Android編程的實現是基於Java語言實現的,開發時可以使用集成版的Eclipse,也可以使用Android Studio。下面,圖示兩種配置方式。
工具/原料
Eclipse、SDK、AndroidStudio
方法/步驟
1、Eclipse集成ADT插件實現Android環境的搭建
(1)打開Eclipse,選擇Help-->Install New Software,如圖所示:
Ⅵ android源碼地址有哪些2014
https://github.com/上面好的代碼比較多!
國內:http://git.oschina.net/
eoe上面也有一些
可以fan牆嘛,使用goagent速度很快的
Ⅶ 如何在github上找到好的android項目源碼學習
完整的項目還是太少而且有點難,再分享個eoe上別人整理的開源項目集:Android精品開源項目整理,如果覺得項目還是難的話,還是先從控制項或部分功能的demo學起(Google也提供有Android的APIdemo),這樣或許會學得更快。
Ⅷ Android 怎樣實現圖片放大縮小,上一頁,下一頁
用AsynTask載入網路圖片,可以看下我以前發的博客http://code.eoe.cn/1965.html。下載網路圖片的代碼寫在MainActivity.java裡面的private class DownloadTask extends AsyncTask<String, Integer, List<RowItem> >{}
Ⅸ 安卓源代碼
需要SDK,開發者套件。
你多上論壇上逛逛吧。自然就知道怎麼弄了
Ⅹ Android怎麼得到toast的內容,不一定是自己軟體的toast
Android中Toast的顯示時間為特定時間且不可更改,但是有時候我們開發設計需要讓Toast顯示更長時間,或者自己完全控制Toast的顯示和關閉。通過查看Toast類的源碼,可以看出,這有點難為它了,Toast類本身並沒有提供相應方法。
但是通過源碼的查看,還是可以看出點眉頭。源碼分析思路在這里轉eoe里的一篇文章,思路較為清晰:
轉:
Toast信息提示框之所以在顯示一定時間後會自動關閉,是因為在系統中有一個Toast隊列。系統會依次從隊列中取(出隊列)一個Toast,並 顯示它。在顯示一段時間後,再關閉,然後再顯示下一個Toast信息提示框。
直到Toast隊列中所有Toast都顯示完為止。那麼有些時候需要這個Toas t信息提示框長時間顯示,直到需要關閉它時通過代碼來控制,而不是讓系統自動來關閉Toast信息提示框。
不過這個要求對於Toast本身來說有些過 分,因為Toast類並沒有提供這個功能。雖然如此,但方法總比問題多。通過一些特殊的處理還是可以實現這個功能的,而且並不復雜。