1. 程式人生 > >android開發過程中一些遇到的問題

android開發過程中一些遇到的問題

記錄android開發過程中遇到的問題。

1.在一個xml中能否使用同一個include多次

http://www.apkbus.com/android-104152-1-1.html

android中include標籤的使用

http://blog.csdn.net/wangljgood/article/details/6556175

2. android button在 linerlayout中底部居中
button外的權重設為1.0

  
3.button shape
http://www.cnblogs.com/gzggyy/archive/
2013/05/17/3083218.html
4. animation

  
  1. http: //www.eoeandroid.com/forum.php?mod=viewthread&tid=564
  2. http: //blog.csdn.net/feng88724/article/details/6318430
  3. http: //www.360doc.com/content/13/0102/22/6541311_257754535.shtml
  4. http: //blog.csdn.net/aminfo/article/details/7847761
  5. http: //blog.csdn.net/xsl1990/article/details/19125193
  6. http: //www.cnblogs.com/bavariama/archive/2013/01/29/2881225.html
  7. http: //www.oschina.net/question/97118_34523
  8. http: //www.eoeandroid.com/thread-67329-1-1.html
6.imageview 按比例縮放

  
  1. android:scaleType是控制圖片如何resized/moved來匹對ImageView的size。
  2. ImageView.ScaleType / android:scaleType值的意義區別:
  3. CENTER /center 按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則擷取圖片的居中部分顯示
  4. CENTER_CROP / centerCrop 按比例擴大圖片的size居中顯示,使得圖片長(寬)等於或大於View的長(寬)
  5. CENTER_INSIDE / centerInside 將圖片的內容完整居中顯示,通過按比例縮小或原來的size使得圖片長/寬等於或小於View的長/寬
  6. FIT_CENTER / fitCenter 把圖片按比例擴大/縮小到View的寬度,居中顯示
  7. FIT_END / fitEnd 把圖片按比例擴大/縮小到View的寬度,顯示在View的下部分位置
  8. FIT_START / fitStart 把圖片按比例擴大/縮小到View的寬度,顯示在View的上部分位置
  9. FIT_XY / fitXY 把圖片不按比例擴大/縮小到View的大小顯示
  10. MATRIX / matrix 用矩陣來繪製,動態縮小放大圖片來顯示。

android如何獲取時間差?

7.ImageLoader must be init with configuration before using 錯誤解決方法

imageLoader.init(ImageLoaderConfiguration.createDefault(MainActivity.this));

8.java.lang.StackOverflowError

StackOverflow 這個問題一般是你的程式裡頭可能是有死迴圈或遞迴呼叫所產生的;

9.java.lang.ClassCastException: android.app.Application cannot be cast to MyApplication問題

出這個異常的原因是在專案中添加了新application類(public class Application extends android.app.Application)之後,沒有在manifest.xml中新增該類的宣告,所以編譯器丟擲異常: java.lang.ClassCastException: android.app.Application cannot be cast to android_serialport_api.sample.Application

解決方法,在manifest.xml中新增: [html] view plaincopy


  
  1. <application
  2. android:name= "xxx.MyApplication">
10. event.getAction();
11. Found both android-support-v4 and android-support-v13 in the dependency list.
12. 怎麼關聯android-support-v4原始碼

  
  1. 問題:使用viewpager或者fragmentActivity等一些v4包下的類,當我們按F3時無法檢視到原始碼,這個時候就需要我們關聯該原始碼,該原始碼的關聯與android原始碼的關聯不一樣。
  2. 解決辦法:
  3. 1、首先在工程的libs目錄下建立一個配置檔案:android-support-v4.jar.properties(建議這樣)
  4. 2、查詢自己安裝的SDK的目錄下的android-support-v4的src原始碼地址
  5. 本人的為:D:\eclipse\android-sdk\extras\android\compatibility\v4\src
  6. 3、編輯android-support-v4.jar.properties檔案為:(注意是雙斜槓)
  7. src = D:\\eclipse\\android-sdk\\extras\\android\\compatibility\\v4\\src
  8. 4、關閉自己的工程後再開啟,此時進去選擇ViewPager後F3就能看到原始碼了。
  9. 5、恭喜:android-support-v4 原始碼已經成功的關聯上。

還有種方式,http://blog.csdn.net/leon90dm/article/details/8521939,沒試。

上面是eclipse中的做法,在androidstudio中的使用更簡單。

13.eclipse 修改設定Ctrl+Shift+F長度

  
  1. window的Preferences中的Java->Code Style->Formatter
  2. 到了這一步就是找到Ctrl+Shift+F的格式化模板了,這裡不能直接修改。因為是eclipse預設的模板,是隻讀的。
  3. 我們可以 new 一個Formatter,然後點選edit就可以修改模板。
  4. 我修改模板主要就是修改那個Ctrl+Shift+F後,把我的程式碼換多行了。
  5. 修改選項卡中的Line Wrapping選項卡, 有一個Maximum line with80(預設);
  6. 這裡預設是 80我們可以把它修改成 120的,那樣不超過 120個字元就不會被換行了!
  7. 其他自己需要的格式都可以在這裡面修改。當然你還可以匯出你自定義的格式,匯出的是xml格式的。以後在其他地方
  8. 還可以匯入。這樣就不用再自定義了。
14. android-develop 映象路徑[重點推薦]
http://androiddoc.qiniudn.com/

  

google,被和諧後,通過vpn或者訪問上述映象路徑。

15.fragment Andriod開發技巧——Fragment的懶載入

一個Activity裡面可能會以viewpager(或其他容器)與多個Fragment來組合使用,而如果每個fragment都需要去載入資料,或從本地載入,或從網路載入,那麼在這個activity剛建立的時候就變成需要初始化大量資源。這樣的結果,我們當然不會滿意。那麼,能不能做到當切換到這個fragment的時候,它才去初始化呢?

答案就在Fragment裡的setUserVisibleHint這個方法裡 http://blog.csdn.net/maosidiaoxian/article/details/38300627

結合fragment的hide和show使用。

16.讓多個Fragment 切換時不重新例項化

http://www.yrom.net/blog/2013/03/10/fragment-switch-not-restart/

17. 關於Android的GridView新增headerView

grid-with-header-list-adapter StickyGridHeaders/ http://www.eoeandroid.com/blog-696650-48907.html

18.Eclipse設定不格式化註釋
Eclipse設定不格式化註釋

  

  註釋中寫點帶格式的文字,format後全亂了,解決辦法如下:   Windows -> Preferces -> java -> Code Style -> Formatter -> Edit -> Comments   取消勾選“Enable Javadoc comment formatting”.

19.android-Ultra-Pull-To-Refresh
20.Linux動態gif圖的錄製

  
  1. byzanz
  2. byzanz的安裝與使用
  3. Ubuntu下安裝
  4. sudo add-apt-repository ppa:fossfreedom/byzanz
  5. sudo apt-get update sudo apt- get install byzanz
  6. 你可以通過如下命令來完成錄製過程:
  7. byzanz- record -d 40 -x 0 -y 0 -w 400 -h 320 byzanz-demo.gif
  8. 其中:
  9. -d 40 為錄製的時長為 40
  10. -x 0 錄製區域的橫座標
  11. -y 0 錄製區域的縱座標,記住:螢幕右上角為原點( 0, 0
  12. -w 400 錄製區域的寬度
  13. -h 320 錄製區域的高度
  14. byzanz-demo.gif 儲存的檔名
  15. 詳細引數可通過byzanz- record --help檢視。
  16. http://www.tuicool.com/articles/YFJrem
  17. 另外:windows下 GIF螢幕錄影機 V2 .0
22. viewpage 無線迴圈

http://www.cnblogs.com/xinye/archive/2013/06/09/3129140.html

23.public void onPageScrollStateChanged(int arg0)

  
  1. 此方法是在狀態改變的時候呼叫,其中arg0這個引數有三種狀態(0,1,2)。arg0 ==1的時辰默示正在滑動,arg0==2的時辰默示滑動完畢了,arg0==0的時辰默示什麼都沒做。
  2. 當頁面開始滑動的時候,三種狀態的變化順序為(1,2,0)
24.

在eclipse.ini檔案中加入 -Dorg.eclipse.swt.browser.DefaultType=mozilla 然後clean一下就OK了 執行clean命令

26.viewpager實現畫廊(一屏多個Fragment)效果
27.svn命令

通過指令新增檔案,每次都到對應資料夾 svn add。這樣如果需要add的檔案不在一個資料夾時會很麻煩,通過下面的 --force 可以方便的新增。 $ svn add * --force http://developer.51cto.com/art/201005/201633.htm

當然現在studio整合樂svn git等程式碼管理工具,很方便,可以直接使用。

28.Array constants can only be used in initializers

  
  1. int CC [] ={ 1, 2, 3}; 陣列定義並附初始值的時候,陣列的長度就定了,長度是 3
  2. 而且陣列重新賦值不能再像定義的時候那樣
  3. 而要一個一個地更改
  4. CC[ 0]= 1;
  5. CC[ 1]= 2;
  6. CC[ 2]= 3;
  7. Array constants can only be used in initializers 好像是說陣列不能用於初始化
29.android 外掛化
30.scrollview在內容較少時也可以滾動
在XML為ScrollView新增屬性android:overScrollMode="always"即可

  
31.gridview/listview 點選時 android預設背景是黃色的,如何去掉選中時的黃色背景

  
  1. 方法一,在控制元件被初始化的時候設定
  2. gridView.setSelector( new ColorDrawable(Color.TRANSPARENT));
  3. listView.setSelector( new ColorDrawable(Color.TRANSPARENT));
  4. 方法二,在佈局檔案中設定listSelector屬性
  5. <GridView
  6. android:listSelector= "@android:color/transparent"
  7. android:numColumns= "auto_fit"
  8. android:columnWidth= "50dp"
  9. android:stretchMode= "spacingWidth"
  10. android:layout_weight= "1.0"
  11. android:layout_height= "0dip"
  12. android:layout_width= "match_parent"/>
  13. <ListView
  14. android:listSelector= "@android:color/transparent"
  15. android:layout_height= "match_parent"
  16. android:layout_width= "match_parent"/>
  17. 當然也可以定製化自己想要的效果。
  18. 推薦使用方法二,解耦邏輯程式碼與佈局檔案。

另外listview還有兩個基礎問題 問題1:


  
  1. listview在拖動的時候背景圖片消失變成黑色背景。等到拖動完畢我們自己的背景圖片才顯示出來。
  2. 解決辦法:
  3. xml中: android:scrollingCache= "false" 或者 android:cacheColorHint= "#00000000"
  4. 程式碼中: setScrollingCacheEnabled( false) 或者 setCacheColorHint( 0) 或者setCacheColorHint(Color.TRANSPARENT);
  5. 問題 2
  6. listview的上邊和下邊有黑色的陰影。
  7. 解決辦法:
  8. xml中: android:fadingEdge= "none"
  9. 程式碼中:setFadingEdgeLength( 0);
32.ScrollView僅支援一個子項,報錯ScrollView can host only one direct child

  
  1. 解決辦法:
  2. 在ScrollView 中設LinearLayout為子項 ,將其它View放入LinearLayout。
33.viewpager 設定間距和快取

viewPager.setOffscreenPageLimit(TOTAL_COUNT); viewPager.setPageMargin(getResources().getDimensionPixelSize(R.dimen.page_margin));

34.一級快取和二級快取是什麼意思??

靜態ram快取叫一級快取,而把後來增加的動態RAM叫二級快取。 RAM分兩種, 一種是靜態RAM,SRAM;一種是動態RAM,DRAM。前者的儲存速度要比後者快得多,我們現在使用的記憶體一般都是動態RAM。

有的菜鳥就說了,為了增加系統的速度,把快取擴大不就行了嗎,擴大的越大,快取的資料越多,系統不就越快了嗎

快取通常都是靜態RAM,速度是非常的快,

但是靜態RAM整合度低(儲存相同的資料,靜態RAM的體積是動態RAM的6倍),

價格高(同容量的靜態RAM是動態RAM的四倍),

由此可見,擴大靜態RAM作為快取是一個非常愚蠢的行為,

但是為了提高系統的效能和速度,我們必須要擴大快取,

這樣就有了一個折中的方法,不擴大原來的靜態RAM快取,而是增加一些高速動態RAM做為快取,

這些高速動態RAM速度要比常規動態RAM快,但比原來的靜態RAM快取慢,

我們把原來的靜態ram快取叫一級快取,而把後來增加的動態RAM叫二級快取。

一級快取和二級快取中的內容都是記憶體中訪問頻率高的資料的複製品(對映),它們的存在都是為了減少高速CPU對慢速記憶體的訪問。 通常CPU找資料或指令的順序是:先到一級快取中找,找不到再到二級快取中找,如果還找不到就只有到記憶體中找了

35.效能優化:使用SparseArray代替HashMap<Integer,Object>

http://blog.csdn.net/haukey/article/details/8200404

36.程式碼規範

http://liuzhichao.com/p/1781.html#more-1781

37. // Disallow Parent Intercept, just in case

  
  1. ViewParent parent = getParent();
  2. if ( parent != null) {
  3. parent.requestDisallowInterceptTouchEvent( true);
  4. }
38.linerlayout佈局,如何把一個view指定父view的底部
在純屬佈局中,將除最底部以外的的view都設定weight為1就可以了。

  
39.editview 左側加drawable

如果只是在左邊或者右邊加圖片 可以用EditeView 的一個屬性; android:drawableLeft在text的左邊輸出一個drawable 如果在中間或者隨意加圖片的話,需要你重寫EditView來實現圖文混排!

40.加密演算法

41.01-07 15:34:23.160: E/AndroidRuntime(1932): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load AES: findLibrary returned null

01-07 15:37:43.240: E/AndroidRuntime(2537): java.lang.UnsatisfiedLinkError: Native method not found: com.jetsun.hbfc.core.AESCoder.decryptCNew:()Ljava/lang /String;

01-07 15:37:43.230: D/dalvikvm(2537): No JNI_OnLoad found in /data/data/com.jetsun.hbfc/lib/libAES.so 0x4160abe0, skipping init

01-07 15:37:43.230: W/dalvikvm(2537): No implementation found for native Lcom/jetsun/hbfc/core/AESCoder;.decryptCNew:()Ljava/lang/String;

return makes pointer from integer without a cast [enabled by default]

01-07 17:51:47.520: D/dalvikvm(12438): No JNI_OnLoad found in /data/data/com.jetsun.hbfc/lib/libAES.so 0x41601a80, skipping init 01-07 17:51:47.525: I/JNIMsg(12438): jclass == NULL 01-07 17:51:47.525: I/JNIMsg(12438): step 1 : jclass Begin ok ! 01-07 17:51:47.525: I/JNIMsg(12438): encryptC == NULL 01-07 17:51:47.525: I/JNIMsg(12438): step 2 : decryptC new failed 01-07 17:51:47.525: I/JNIMsg(12438): step 2 : decryptC method prepared ok !

41.jni基礎

android __android_log_print列印函式__原始碼 http://blog.csdn.net/sno_guo/article/details/8143050 JNI欄位描述符“([Ljava/lang/String;)V” http://fgsink.blog.163.com/blog/static/16716997020124310169911/ jni函式講解http://blog.csdn.net/caimouse/article/category/661872/2 基於 Android NDK 的學習之旅----- C呼叫Javahttp://www.cnblogs.com/luxiaofeng54/archive/2011/08/17/2142000.html No JNI_OnLoad found in … skipping inithttp://stackoverflow.com/questions/11798054/no-jni-onload-found-in-skipping-init eclipse ndk配置詳細描述http://www.cnblogs.com/chenjiajin/archive/2012/04/12/2444188.html 基於 Android NDK 的學習之旅

彙總 ndk精華

http://www.cnblogs.com/chenjiajin/archive/2012/04/12/2444188.htmlhttp://www.cnblogs.com/luxiaofeng54/archive/2011/08/17/2142000.htmlhttp://blog.csdn.net/caimouse/article/details/6853795http://fgsink.blog.163.com/blog/#m=0&t=1&c=fks_084071081085086066085080094095085080086066082095095068084

42.md5 aes加密

有固定的金鑰key的AES加密 http://fenglingcorp.iteye.com/blog/586600 android Rsa 演算法加 密明文--->公鑰--->密文 密文-->金鑰-->明文 http://blog.sina.com.cn/s/blog_6568e7880100x8r9.html java加密與解密的藝術作者http://snowolf.iteye.com/blog/379860 Android AES加密演算法及其實現http://blog.csdn.net/randyjiawenjie/article/details/6587986 AES加密解密Android版http://www.cnblogs.com/carlosk/archive/2012/05/18/2507975.html

加密方式 AES 加密模式 AES/CBC/PKCS5Padding 加密向量 iv secretkey 祕鑰 編碼方式 utf-8

43.proguard的使用

程式碼混淆時,不混淆的部分。

44.socket

Socket簡單用法 http://www.cnblogs.com/harrisonpc/archive/2011/03/31/2001565.html 即時通訊
基於xmpp openfire smack開發之openfire介紹和部署[1] http://blog.csdn.net/shimiso/article/details/8816558 Openfire+Spark聊天Demo http://www.apkbus.com/android-69413-1-1.html openfire的Android客戶端實現http://download.csdn.net/detail/sky_monkey/5820879#comment

45.音訊編解碼

FFmpeg的Android平臺移植—編譯篇 http://blog.csdn.net/gobitan/article/details/22750719#reply

46.f5 負載均衡
47. 掌上指路標 —– APP架構與導航設計 http://www.yixieshi.com/ucd/13188.html

 APP導航設計的步驟主要為以下三步:

  1. APP框架整理:資訊架構 or 任務分析

  2. 框架層級判斷: 扁平 vs 樹狀

  3. 導航具體表現形式:控制元件形式and擺放位置

48.移動App架構設計

http://blog.csdn.net/uxyheaven/article/details/38041091 移動App設計之分層架構+MVChttp://www.cnblogs.com/Logen/archive/2012/11/08/2760638.html

49.Android 精品開源專案

http://blog.csdn.net/caesardadi/article/details/21091645

50.使用GDB除錯JNI程式碼

Android NDK應用原理 http://shihongzhi.com/ndk/ NDK 開發指南---Android NDK概覽http://hualang.iteye.com/blog/1135105

相關推薦

android開發過程一些遇到的問題

記錄android開發過程中遇到的問題。 1.在一個xml中能否使用同一個include多次 http://www.apkbus.com/android-104152-1-1.html android中include標籤的使用 http://

Android 開發過程平時遇到的一些問題及總結

相信大家都有面試的經歷,相對比面試官的問的一些問題其實都是基礎的知識,但就是一些基礎的知識我們也不是很完美的回答出來,我們也知道現在的開發人員很多,一家公司一個崗位就會有很多的開發者投遞,在那麼多開發者中你如何讓面試官很深的認識你,給面試官一個很深的印象,能讓他

Android開發過程的坑及解決方法收錄(四)

1.某個控制元件要放在Linearlayout佈局的底部(底部導航條) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.

Android開發過程的坑及解決方法收錄

  1.某個控制元件要放在Linearlayout佈局的底部(底部導航條)      <LinearLayout      android:layout_width="match_parent"      android:orientation="vertical"      android:layou

android 開發過程涉及到的清除快取操作

android 開發過程中會遇到很多快取,常常使人摸不清楚,這裡總結一下,希望下次遇到快取相關問題能有所幫助。 Clean Project 點選 Clean Project 會執行 clean、:

Android 開發過程遇到的問題Error:Execution failed for task ':app:processDebugManifest'

在開發過程中遇到了這樣一個問題: 問題1: Error:Execution failed for task ':app:processDebugManifest'.> Manifest merger failed with multiple errors, see l

android.intent.action.SCREEN_ON和android.intent.action.SCREEN_OFF待機廣播在TV android開發過程,不響應原因.

待機廣播,又叫螢幕喚醒廣播:android.intent.action.SCREEN_ON和android.intent.action.SCREEN_OFF 在使用過程中需要主要以下兩點: 1.需要在AndroidManifest.xml添如下許可權: <uses

Android tips(十三)-->Android開發過程使用Lambda表示式

新的Java8 API中提供了不少新的特性,其中就有Lambda表示式。而本文我們將主要介紹一下在Android開發過程中如何使用Lambda表示式,這裡主要是為我們後續介紹RxAndroid、RxJava相關知識做鋪墊的。 Lambda表示式的概念

Android 開發過程的異常奔潰處理

開發過程中捕獲異常並定位問題解決問題是基本之一,當然也有很多第三方的平臺,比如接入友盟統計、第三方加固(比如360加固等)、騰訊Bugly等都會為我們收集到異常日誌。但是,我個人認為開發及測試過程中編寫一個Crash收集工具類尤為重要。下面分享一下我的crash處理。直接上程

記錄的Android開發過程遇到的問題。

01-20 04:05:16.637:E / AndroidRuntime(1372):程序:com.jetsun.hbfc:webview,PID:1372 01-20 04:05:16.637:E / AndroidRuntime(1372):java.lang.RuntimeException :無法例

Android開發過程可能遇到的問題

一、匯入專案時,提示 “invalid project description” 無效的專案描述,應該與ADT版本不同有關。 出錯背景:外來原始碼放在工作區,然後匯入Eclipse。 解決方法:外來原始碼先放在非工作區(如:桌面),然後匯入到Eclipse,匯入頁面

android開發過程解決bug的方法

1、判斷手機型號 2、判斷手機版本號 1、解決魅藍3手機軟鍵盤不能頂上去佈局的問題 if (Build.MODEL.equals(“m3”)){ Log.i(“LHD”,”connect魅族3手機”);

Android 開發過程碰到的小坑集合

registerReceiver 和 unregisterReceiver 要同一個 mReceiver物件才行,否則會出現”Caused by: java.lang.IllegalArgumentException: Receiver not registe

Android開發過程常用到的工具類HttpUtils,SDCardUtils

 在開發過程我們最長用到的就是判斷網路是否可用,以及把檔案存到指定目錄下等等,而這如果不專門寫一個工具類,將會非常的不方便,因此,我將我做專案過程中用到的幾個工具類貼出來,需要用的童鞋,可以直接拿去用咯~~~ 1.NetWorkUtils.java: public cla

Android開發過程git、repo、adb、grep等指令的使用

chown       是一條在Unix系統中用於設定檔案所有者和檔案關聯組的命令。 需要超級使用者的許可權才能執行此命令。只有超級使用者和屬於組的檔案所有者才能變更檔案關聯組。非特權使用者(非超級使用者)如需要設定關聯組可能需要使用chgrp命令。     # chown rob:developers

Android 開發過程問題解析

tps .com bubuko android 技術分享 怎樣 info image r.java 因為這個問題,困擾了好久 最後找到了最根本的問題,當時是因為沒有R.java為什麽沒有? 是因為布局出現了錯誤,在一篇百度經驗中找到了怎樣解決 https://jingya

Android開發過程的坑及解決方法收錄(五)

版本號 如果 出現 過程 androi 分享圖片 onf blog end 1. 導入依賴庫出現錯誤 因為使用的sdk版本不同,使用下列代碼強制使用最低版本,25.3.1就是我當前使用的版本號,根據自己的情況修改 configurations.all {

ReactJS 開發過程一些使用心得

有著 dom操作 作者 -s arc 有用 第一個 sets tao ReactJS作為目前最火的構建用戶界面的前端框架,為什麽有那麽多的前端工程師去追逐它,不僅因為它簡單,而且它提供了一系列強大的API讓我們擺脫以前繁瑣的DOM操作,使我們的邏輯更加清晰,代碼更加簡單。

關於基於Linphone的視頻通話Android開發過程遇到的問題

浪費 phone 模式 需要 class 通話 其他 了解 同時 關於基於Linphone的視頻通話Android端開發過程中遇到的問題     運用開源項目Linphone的SDK進行開發,由於是小組進行開發,我主要負責的是界面部分。   由於當時是初學Android開發

nodejs開發過程遇到的一些插件記錄

.com 實現 輸出 規範 blog com nod 記錄 pan 1、chalk   Github:https://github.com/chalk/chalk    終端樣式定制插件,可自定義輸出日誌的樣式。 1、semver   管網:https://semv