1. ホーム
  2. アンドロイド

Androidの開発過程で発生した問題点を記録しました。

2022-02-21 14:19:15
<スパン 180508更新

  デモのオンラインダウンロード ローカルのスタジオ版とデモ版の不一致に対応

  2つの変更点

 1 プロジェクトのbuild.gradleにあるクラスパス


2 プロジェクト・ディレクトリーにある gradle-->wrapper-->gradle-wrapper.properties ファイルを修正します。
distributionUrl address

その後、クリーンビルド・リビルドが行われる
<スパン 1. 同じincludeをXMLの中で複数回使用することはできますか?

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

Androidにおけるincludeタグの使用について

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

アンドロイドボタンを中央下部に配置
Set the weight outside the button to 1.0

http://www.cnblogs.com/gzggyy/archive/2013/05/17/3083218.html

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

The android:scaleType controls how the image is resized/moved to match the size of the ImageView.

ScaleType / android:scaleType values are different in meaning.

CENTER /center is centered according to the original size of the image, when the length/width of the image exceeds the length/width of the View, the centered part of the image is intercepted and displayed.

CENTER_CROP / centerCrop expands the size of the image to make it equal to or larger than the length (width) of the View.

CENTER_INSIDE / centerInside centers the content of the image, making the image length/width equal to or smaller than the View's length/width by scaling down or original size.

FIT_CENTER / fitCenter to scale up/down the image to the width of the View and center it.

FIT_END / fitEnd scales the image up/down to the width of the View and displays it in the lower part of the View

FIT_START / fitStart scales the image up/down to the width of the View, displaying it in the upper part of the View

FIT_XY / fitXY to display the image without scaling up/down to the size of the View

MATRIX / matrix Use matrix to draw and dynamically shrink and enlarge the image to display it.


3. ボタン形状
<application  
 android:name="xxx.MyApplication">  

Problem: Using some classes under v4 package such as viewpager or fragmentActivity, when we press F3 we can't see the source code, this time we need to associate the source code, the association of the source code is not the same as the association of the android source code.

Solution.

1, first create a configuration file in the project libs directory: android-support-v4.jar.properties (this is recommended)

2, find the src source code address of android-support-v4 in the directory of the SDK you installed

My address is: D:\eclipse\android-sdk\extras\android\compatibility\v4\src

3. Edit the android-support-v4.jar.properties file as follows (note the double slash)

src = D:\\eclipse\\\android-sdk\\\extras\\\\android\\\compatibility\\\v4\\src

4, close your own project and then open it, at this time go in and select ViewPager after F3 you can see the source code.

5、Congratulations: the source code of android-support-v4 has been successfully associated with it.


<スパン アニメーション
Java->Code Style->Formatter in window's Preferences

By this step is to find the Ctrl+Shift+F formatting template, which cannot be modified directly here. Because it is the default template of eclipse, which is read-only.

We can new a Formatter, and then click edit to modify the template.

I modify the template is mainly to modify that Ctrl+Shift+F after changing my code for more lines.

Modify the Line Wrapping tab in the tab, there is a Maximum line with: 80 (default).

Here the default is 80 we can change it to 120, so that no more than 120 characters will not be line wrap!

Any other formatting you need can be modified in here. Of course you can also export your custom format, the export is xml format. Later in other places

You can also import. This way you don't have to customize it anymore.

http://androiddoc.qiniudn.com/



イメージビューの拡大縮小
Eclipse setting up unformatted comments


<スパン アンドロイドの時差を取得する方法は?

エラー解決方法を使用する前に、必ずImagingLoaderを使用して設定してください。

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

8.java.lang.StackOverflowError(スタックオーバーフローエラー

StackOverflowの問題は、通常、プログラム内のデッドループや再帰的な呼び出しによって引き起こされます。

9.java.lang.ClassCastException: android.app.Application は MyApplication に変換できない問題

この例外の原因は、プロジェクトに新しいアプリケーションクラス (public class Application extends android.app.Application) を追加した後、クラス宣言が manifest.xml に追加されていないため、コンパイラーが例外をスローしたことです: java.lang.Application Extends android.app.Application Extends android.app.Application Extends android.app.Application Extends android.app.Application Extends android.app.Application Extensions. ClassCastException: android.app.Application は android_serialport_api.sample.Application に変換されませんでした。

<スパン 回避策、manifest.xmlに追加します。[html] プレーンコピーを表示する

byzanz  
Installation and use of byzanz

Installation under Ubuntu

  sudo add-apt-repository ppa:fossfreedom/byzanz
sudo apt-get update sudo apt-get install byzanz

You can complete the recording process with the following command.
byzanz-record -d 40 -x 0 -y 0 -w 400 -h 320 byzanz-demo.gif

Where.

    -d 40 is the duration of the recording for 40 seconds
    -x 0 is the horizontal coordinate of the recording area
    -y 0 the vertical coordinate of the recording area, remember: the top right corner of the screen is the origin (0,0)
    -w 400 the width of the recording area
    -h 320 The height of the recording area

byzanz-demo.gif Saved filename

Detailed parameters can be viewed via byzanz-record --help.
http://www.tuicool.com/articles/YFJrem

Also: GIF screen recorder for windows V2.0


10. event.getAction()。
11. android-support-v4 と android-support-v13 が依存関係リストにあります。
12. android-support-v4 のソースコードを関連付ける方法
This method is called when the state changes, where arg0 has three states (0, 1, 2). arg0 == 1 means it is scrolling, arg0 == 2 means it is done, and arg0 == 0 means it is not doing anything.

When the page starts sliding, the three states change in the order (1, 2, 0)


という方法もあります。 http://blog.csdn.net/leon90dm/article/details/8521939、試していません。

上記はEclipseでのやり方ですが、androidstudioではもっと簡単です。

13. eclipseの設定を変更する Ctrl + Shift + Fの長さ
int CC [] ={1,2,3}; When the array is defined and initialized, the length of the array is set and is 3
 and the array can no longer be reassigned as it was when it was defined
but one by one
CC[0]=1;
CC[1]=2;
CC[2]=3;
Array constants can only be used in initializers It seems to say that arrays cannot be used for initialization

Add the property android:overScrollMode="always" to the XML for the ScrollView

Method 1, set it when the control is initialized

gridView.setSelector(new ColorDrawable(COLOR.TRANSPARENT));
setSelector(new ColorDrawable(Color.TRANSPARENT)); listView.setSelector(new ColorDrawable(Color.TRANSPARENT)).

Method 2, set the listSelector property in the layout file

 

<GridView
	android:listSelector="@android:color/transparent"
	android:numColumns="auto_fit"
	android:columnWidth="50dp"
	android:stretchMode="spacingWidth"
	android:layout_weight="1.0"
	android:layout_height="0dip"
	android:layout_width="match_parent"/>

<ListView
	android:listSelector="@android:color/transparent"
	android:layout_height="match_parent"
	android:layout_width="match_parent"/>

Of course, you can also customize the effect you want.

We recommend using method 2 to decouple the logic code from the layout file. 


android-develop ミラーパス [強調]。
	       The background image disappears to a black background when the listview is dragged. Wait until the dragging is done before our own background image shows up.

	Workaround.

	      In xml: android:scrollingCache="false" or android:cacheColorHint="#00000000"

	     In the code: setScrollingCacheEnabled(false) or setCacheColorHint(0) or setCacheColorHint(Color.TRANSPARENT);

	Question 2.

	    The top and bottom edges of the listview have black shadows.

	Solution.

	   In xml: android:fadingEdge="none"

	  In code: setFadingEdgeLength(0);

Workaround.

Set the LinearLayout as a child in the ScrollView and put the other Views in the LinearLayout.


<スパン Google、調和された後、VPN経由または上記のミラーパスにアクセスする。

15.fragment Andriod開発秘話~Fragmentの遅延ロードについて

アクティビティは、ビューページャー(または他のコンテナ)内で複数のフラグメントと組み合わせて使用されることがあります。各フラグメントがローカルまたはネットワークからデータを読みに行く必要がある場合、アクティビティが最初に作成されるときに多くのリソースを初期化する必要が出てきます。このような結果では、確かに満足できないでしょう。そこで、このフラグメントに切り替わったときに、初期化だけに行くようにできないでしょうか。

答えは、このスニペットの setUserVisibleHint メソッドにあります。   http://blog.csdn.net/maosidiaoxian/article/details/38300627

フラグメントの隠蔽と表示と組み合わせて使用する。

切り替え時に複数のフラグメントを再インスタンス化しないようにする

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

Android版GridViewへのheaderViewの追加について

グリッドウィズヘッダーリストアダプタ StickyGridHeaders / (英語)   http://www.eoeandroid.com/blog-696650-48907.html

18.Eclipseで書式なしコメントを設定する
                    ViewParent parent = getParent();
                    if (parent ! = null) {
                        parent.requestDisallowInterceptTouchEvent(true);
                    }

In a pure layout, just set all but the bottommost view to weight 1.


  解決方法は以下の通りです。Windows - > Prefer - > java - > Code Style - > Formatting - > Edit - > Comments "Enable Javadoc comment formatting" のチェックを外してください。

19.android-overdraw-to-refresh
20. LinuxダイナミックGIF画像記録
byzanz  
Installation and use of byzanz

Installation under Ubuntu

  sudo add-apt-repository ppa:fossfreedom/byzanz
sudo apt-get update sudo apt-get install byzanz

You can complete the recording process with the following command.
byzanz-record -d 40 -x 0 -y 0 -w 400 -h 320 byzanz-demo.gif

Where.

    -d 40 is the duration of the recording for 40 seconds
    -x 0 is the horizontal coordinate of the recording area
    -y 0 the vertical coordinate of the recording area, remember: the top right corner of the screen is the origin (0,0)
    -w 400 the width of the recording area
    -h 320 The height of the recording area

byzanz-demo.gif Saved filename

Detailed parameters can be viewed via byzanz-record --help.
http://www.tuicool.com/articles/YFJrem

Also: GIF screen recorder for windows V2.0


ビューページワイヤレスループ

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

23. public void onPageScrollStateChanged (int arg0)
This method is called when the state changes, where arg0 has three states (0, 1, 2). arg0 == 1 means it is scrolling, arg0 == 2 means it is done, and arg0 == 0 means it is not doing anything.

When the page starts sliding, the three states change in the order (1, 2, 0)


24.

eclipse.ini ファイルに -Dorg.eclipse.swt.browser.DefaultType = mozilla を追加し、クリーンアップすれば OK クリーンアップコマンドを実行する

26.viewpagerはギャラリー(1画面に複数のスニペット)効果を実装しています。
27. svn コマンド

svn add コマンドでファイルを追加すると、毎回対応するフォルダに移動するので、追加したいファイルが同じフォルダにない場合は、以下のように --force で簡単に追加できます $ svn add * --force   http: //developer.51cto.com/art/201005/201633.htm

もちろん今はstudioがsvn gitのようなコード管理ツールと統合されているので、直接使うのも簡単です。

配列定数はイニシャライザーのみで使用可能です。
int CC [] ={1,2,3}; When the array is defined and initialized, the length of the array is set and is 3
 and the array can no longer be reassigned as it was when it was defined
but one by one
CC[0]=1;
CC[1]=2;
CC[2]=3;
Array constants can only be used in initializers It seems to say that arrays cannot be used for initialization


29.アンドロイドプラグイン
30. スクロールビューはコンテンツが少なくなってもスクロールできる
Add the property android:overScrollMode="always" to the XML for the ScrollView


31.gridview / listviewクリック時間アンドロイドのデフォルトの背景は、黄色の背景を削除する方法選択されたときです
Method 1, set it when the control is initialized

gridView.setSelector(new ColorDrawable(COLOR.TRANSPARENT));
setSelector(new ColorDrawable(Color.TRANSPARENT)); listView.setSelector(new ColorDrawable(Color.TRANSPARENT)).

Method 2, set the listSelector property in the layout file

 

<GridView
	android:listSelector="@android:color/transparent"
	android:numColumns="auto_fit"
	android:columnWidth="50dp"
	android:stretchMode="spacingWidth"
	android:layout_weight="1.0"
	android:layout_height="0dip"
	android:layout_width="match_parent"/>

<ListView
	android:listSelector="@android:color/transparent"
	android:layout_height="match_parent"
	android:layout_width="match_parent"/>

Of course, you can also customize the effect you want.

We recommend using method 2 to decouple the logic code from the layout file. 


リストビューの質問1には、他に2つの根本的な問題があります。

	       The background image disappears to a black background when the listview is dragged. Wait until the dragging is done before our own background image shows up.

	Workaround.

	      In xml: android:scrollingCache="false" or android:cacheColorHint="#00000000"

	     In the code: setScrollingCacheEnabled(false) or setCacheColorHint(0) or setCacheColorHint(Color.TRANSPARENT);

	Question 2.

	    The top and bottom edges of the listview have black shadows.

	Solution.

	   In xml: android:fadingEdge="none"

	  In code: setFadingEdgeLength(0);


32. ScrollViewは1つの子しかサポートしない、ScrollViewは1つの直接の子しかホストできないという報告
Workaround.

Set the LinearLayout as a child in the ScrollView and put the other Views in the LinearLayout.


33. ビューページャーはスペーシングとキャッシングを設定する

viewPager.setOffscreenPageLimit (TOTAL_COUNT)を実行します。  viewPager.setPageMargin (getResources() getDimensionPixelSize(R.dimen.page_margin)));

34. ファーストレベル・キャッシングとセカンドレベル・キャッシングの意味は何ですか?

第1レベルのキャッシュをスタティックRAMキャッシュと呼び、第2レベルは後から追加されるダイナミックRAMキャッシュと呼びます。

キャッシュを拡張すればするほど、より多くのデータをキャッシュすることができ、システムの高速化につながります。

キャッシュは通常スタティックRAMで、これは非常に高速です。

が、スタティックRAMは集積度が低く(同じデータを保存する場合、スタティックRAMはダイナミックRAMの6倍)、その分

価格が高い(スタティックRAMは同じ容量でダイナミックRAMの4倍)、そして

このことから、スタティックRAMをキャッシュとして拡張することは、非常に愚かな行為であり

しかし、システムの性能と速度を向上させるためには、キャッシュを拡張することが必要であることを

そこで妥協案として、元のスタティックRAMのキャッシュを拡張する代わりに、高速なダイナミックRAMをキャッシュとして追加し

これらの高速ダイナミックRAMは、通常のダイナミックRAMより高速ですが、元のスタティックRAMキャッシュより低速であり

元のスタティックRAMキャッシュを1次キャッシュ、後から追加されたダイナミックRAMを2次キャッシュと呼んでいます。

1次キャッシュも2次キャッシュも、その内容はメモリ上の頻繁にアクセスされるデータの複製(マッピング)であり、高速CPUによる低速メモリへのアクセスを軽減するために存在する。

35. パフォーマンスの最適化: HashMap で <integer, object> の代わりに SparseArray を使用する。

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

36. コード指定

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

// 念のため、パレンタルブロックを無効にしてください。
                    ViewParent parent = getParent();
                    if (parent ! = null) {
                        parent.requestDisallowInterceptTouchEvent(true);
                    }


38. linerlayoutレイアウト、親ビューの下にビューを割り当てる方法
In a pure layout, just set all but the bottommost view to weight 1.


39の左側にあるガラ

もし、左右に画像を追加するだけなら、EditeViewのプロパティの一つであるandroid:drawableLeftを使えば、テキストの左側にdrawableを出力できます。 もし、真ん中やランダムに画像を追加するなら、グラフィックスが混ざるようにEditViewを書き直さなければなりません!(笑)

40. 暗号化アルゴリズム

41.01-07 15:34:23.160:E / AndroidRuntime (1932): caused by: java.lang.UnsatisfiedLinkError: AESをロードすることができませんでした:findLibraryは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): JNI_OnLoad が /data/data/com.jetsun.hbfc/lib/libAES.so 0x4160abe0 で見つからず、初期化をスキップしている。

01-07 15:37:43.230: W / dalvikvm (2537): ネイティブ Lcom / jetsun / hbfc / core / AESCoder; .decryptCNew :() Ljava / lang / String のための実装が見つかりませんでした。

変換せずに整数にするポインタを返す【デフォルトで有効

01-07 17:51:47.520: D / dalvikvm (12438): JNI_OnLoad が /data/data/com.jetsun.hbfc/lib/libAES.so の 0x41601a80 で見つからず、 init をスキップ 01-07 17:51:47.525: I / JNIMsg(12438): jclass == NULL 01-07 17:51:47.525: I / JNIMsg(12438): ステップ 1: jclass がうまく始まってます! 01-08 17:51:47.525: JNIMsg(124391): jclass == NULL 01-08 17:52:52.525: I / Dalvikvm の jclass がうまく始まっています! 01-08 17:52:52.525: JNIMsg(124391) 01-07 17:51:47.525: I / JNIMsg(12438): encryptC == NULL 01-07 17:51:47.525: I / JNIMsg(12438): encryptC == NULL: ステップ 2: decryptC new failed 01-07 17:51:47.525: I / JNIMsg( 12438): Step 2: decryptC メソッドの準備ができました。

41.jniベーシック

android __android_log_print print function__ ソースコード   http://blog.csdn.net/sno_guo/article/details/8143050   JNIフィールドディスクリプタ "([Ljava / lang / String;)V"。   http: / / fgsink.blog.163 .com / ブログ / 静的 / 16716997020124310169911 / 。   jniの機能解説 http://blog.csdn.net/caimouse/article/category/661872/2   Android NDKベースの学習の旅 ----- C言語からJavaへの呼び出し  http:// www.cnblogs.com/luxiaofeng54/archive/2011/08/17/2142000.html   JNI_OnLoad が見つかりません... init をスキップしています。  http://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.html  http://www.cnblogs.com/luxiaofeng54/archive/2011/08/17/2142000.html  http:// blog.csdn.net/caimouse/article/details/6853795  http://fgsink.blog.163.com/blog/#m=0&t=1&c=fks_084071081085086066085080094095085080086066082095095068084

暗号化

固定鍵によるAES暗号化 http://fenglingcorp.iteye.com/blog/586600   アンドロイド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暗号化・復号化 for Android http://www.cnblogs.com/carlosk/archive/2012/05/18/2507975.html

暗号化方式 AES 暗号化方式 AES / CBC / PKCS5Padding 暗号化ベクトル iv secretkey secret 符号化方式 utf-8

43. プロガードの使用

難読化されたときに難読化されない部分。

44.ソケット

ソケットの簡単な使い方   http://www.cnblogs.com/harrisonpc/archive/2011/03/31/2001565.html   インスタントメッセージング
xmppによるOpenfireの導入と展開 openfire smack開発 [1]   http://blog.csdn.net / しみそ / 記事 / 詳細 / 8816558   Openfire + Spark チャットデモ   http://www.apkbus.com/android-69413-1-1.html  <スパン オープンファイア   のAndroidクライアント実装は http://download.csdn.net/detail/ sky_monkey / 5820879 #comments

45. オーディオコーデック

FFmpeg の Android 用プラットフォームへの移植 - コンパイル   http://blog.csdn.net/gobitan/article/details/22750719#reply

46.f5ロードバランシング
Pocket Navigator - APPアーキテクチャとナビゲーションデザイン   http://www.yixieshi.com/ucd/13188.html

 APPナビゲーションデザインの手順は、大きく分けて以下の3つです。

  APPフレームワークの仕上げ:情報アーキテクチャまたはタスク分析

<スパン   フレームワークの階層判定:フラットvsツリー

<スパン   ナビゲーションに特化した表現:コントロールフォームと配置

48. モバイルアプリのアーキテクチャ設計

http://blog.csdn.net/uxyheaven/article/details/38041091   レイヤードアーキテクチャ+MVCによるモバイルアプリの設計  http://www.cnblogs.com/Logen/archive/2012/11/08/2760638.html

アンダーソン・ファイン オープンソース・プロジェクト

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

英語で"Make unlimited use"を使用できないようにする。

解決策 ターミナル sogou-qimpanel &