Android 開發小技巧(2)

      網友投稿 1003 2022-05-29

      轉自:農民伯伯: http://www.cnblogs.com/over140/

      常用代碼

      7.1???在當前Activity中啟動另外一個Activity

      startActivity(new Intent(this,目標Activity.class));

      7.2???從當前ContentView從查找控件

      (Button)findViewById(R.id.btnAbout)//R.id.btnAbout指控件id。

      7.3???獲取屏幕寬高

      DisplayMetrics dm = new DisplayMetrics();

      //獲取窗口屬性

      getWindowManager().getDefaultDisplay().getMetrics(dm);

      int screenWidth = dm.widthPixels;//320

      int screenHeight = dm.heightPixels;//480

      7.4???無標題欄、全屏

      //無標題欄

      requestWindowFeature(Window.FEATURE_NO_TITLE);

      //全屏模式

      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

      WindowManager.LayoutParams.FLAG_FULLSCREEN);

      //注意在setContentView()之前調用,否則無效。

      7.5???注冊activity

      所有用到的Activity都必須在AndroidManifest.xml中注冊,否則會報空指針錯誤。如:?,注意是包名+類名。

      八、?????????????Adb命令行

      8.1?? DOS進入android-sdk-windows\tools目錄

      8.2?? Linux

      登錄linux命令:adb shell

      列出當前文件:ls

      刪除文件:rm?文件名

      8.3?? Sqlite

      登錄sqlite命令:sqlite3

      8.4?? Adb命令

      列出當前有哪些活動的模擬器:adb devices

      上傳文件:adb push

      安裝apk文件:adb install android123.apk

      九、??Apk文件破解

      9.1???獲取apk的資源圖片

      直接用?WinRAR打開,res/drawable直接拖拽出來即可。

      9.2???獲取xml文件信息

      雖然能用WinRAR看到里面的xml文件,但是xml是經過優化的,無法直接查看,需要使用apktool工具,-:https://code.google.com/p/android-apktool/。

      下載apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解壓到同一個目錄,然后把待破解的apk文件拷貝到同一目錄,DOS進入該目錄,輸入:aapt d 91callinfo.apk 91callinfo,這里第四個參數為破解完存放的路徑。

      9.3???反編譯dex獲取Java源代碼

      Apktool工具只能反編譯成smali的中間代碼文件,這里需要借助另外一個開源工具:dex2jar,-:http://code.google.com/p/dex2jar/。這個工具不能直接翻譯成java文件,但是可以把dex文件轉換成jar文件,然后可以通過jad工具把jar文件反編譯成Java源文件,如果只是看看源碼的話可以用jd-gui,-:

      http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip?。

      dex文件(classes.dex)可以用WinRAR從apk文件中解壓出來。

      十、?????????????小技巧

      10.1??????????使用系統的圖標

      例如調用系統打電話的圖標:

      Android 開發小技巧(2)

      10.6??????????界面可視化布局工具

      系統提供可視化布局并不好用,這里推薦一款,布局完后點生成代碼即可:

      DroidDraw:http://www.droiddraw.org/

      10.7??????????在Eclipse中看Android的源碼

      將源代碼拷貝至android-sdk-windows\platforms\android-4\sources下即可。注意源碼版本對應android-4文件夾,這里指Android1.6的源碼。

      十一、??????Q & A

      11.1??????????用模擬器調試頻繁連不上,或者報emulator-5554 disconnected的錯誤?

      Window(窗口) -> Show Views(顯示視圖) -> device -> view menu(視圖菜單)-> Reset adb

      11.2??????????匿名類中如何使用this?

      classname(類名).this

      *去掉android的屏幕上的title bar

      在進行android開發時,每個Activity會默認帶上一個title bar用以顯示程序名,有時為了擴大屏幕的顯示區域需要去掉這個title bar,去掉屏幕上的title bar有3個方法,

      第一個方法是在代碼去掉title bar

      在Activity的onCreate中加入如下代碼:

      this.requestWindowFeature(Window.FEATURE_NO_TITLE);

      但是使用這種方法,是在Activity將要顯示的時候,仍然會出現title bar,然后再將其去掉,用戶體驗不好。

      第二種方法是使用style配置文件,步驟如下:

      1.在res/values文件夾下創建一個xml文件,名為mainStyle.xml,內容如下:

      2.然后在AndroidManifest.xml中需要去掉title bar的activities的節點上加上一個樣式屬性,代碼如下

      android:configChanges="keyboardHidden|orientation|locale" android:theme="@style/NoTitle">

      第三種方法是直接在AndroidManifest.xml中進行修改,

      把需要去掉title bar的activities的節點上加上一個樣式屬性,代碼如下:

      android:configChanges="keyboardHidden|orientation" android:theme="@android:style/Theme.NoTitleBar"/>

      也可以在AndroidManifest.xml文件的application節點上修改,對所有的activity都有效,代碼如下:

      *Android獲得Location信息的方法

      在開發一些與定位有關的程序的時候,經常需要獲得設備的Location,獲取設備的Location的方法如下:

      1.創建一個LocationListener接口的實現類,可以使用匿名類,代碼如下:

      public final LocationListener mLocationListener01 = new LocationListener() {

      @Override

      public void onLocationChanged(Location location) {}

      @Override

      public void onProviderDisabled(String provider) {}

      @Override

      public void onProviderEnabled(String provider) {}

      @Override

      public void onStatusChanged(String provider, int status, Bundle extras) {}

      };

      2.創建LocationManager,并且調用其上的requestLocationUpdates方法,注意:這里需要GPS和NetWork都要請求更新location,前者為WIFI/基站定位,后者為GPS定位,當一種定位方式不能使用的時候,還可以使用另外一種。

      LocationManager locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

      locMan.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 10,

      mLocationListener01);

      locMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 10,

      mLocationListener01);

      3.編寫獲取location信息的方法,在這里先使用GPS定位方式獲取location信息,如果獲取不到就使用WIFI/基站方式獲取:

      public static Location getLocation(Context context) {

      LocationManager locMan = (LocationManager) context

      .getSystemService(Context.LOCATION_SERVICE);

      Location location = locMan

      .getLastKnownLocation(LocationManager.GPS_PROVIDER);

      if(location==null){

      location = locMan

      .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

      }

      Log.i(TAG, "---location:" + location);

      return location;

      }

      如何有效適應Android機差異較大的屏幕分辨率

      其實,在你layout的xml文件中,編寫的時候是不是用了許多的padding呢?如果是,那你就蛋疼了。因為這樣的布局永遠是無法適應所有手機屏幕的。正確的做法應該是使用weight屬性。

      過程很簡單:首先,將你控件的layout中的width、height設置為fill-parent,不要使用wrap——content。因為wrap-content的大小是不固定的。而weight(權重)這個屬性很好的解決了這個問題。

      當包裹在控件外面的Layout的width、height屬性都設置為fill-parent時,可以利用weight的反比特性。即如果控件A設置weight為9,控件B設置weight為20,那么A所占的空間為20/(9+20),B所占的空間為9/(9+20)。這樣的反比屬性對任何分辨率下的手機都是合適的。

      當然,字體就不行了。那怎么保證字體能夠跟布局一樣能夠自適應呢?

      呵呵,很簡單,就是在你的res文件夾中創建一個文件夾,叫做values-320x240。其中320x240是你手機屏幕的分辨率,根據你手機屏幕的情況做不同的命名,例如values-800x480。在該文件夾下創建一個dimens.xml文件,定義各種字體的大小。那么系統就會自動根據你手機屏幕的分辨率去調用響應的文件夾。

      另外,值得提醒的是,記得在你默認的values文件下的dimens.xml文件中也要寫上相應的字體大小哦,因為當系統無法認識你手機屏幕大小的時候,它會自動去找你默認文件中的東西,沒有寫的話程序會崩潰。

      Android HTTP Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Flink狀態管理與Checkpoint實戰——模擬電商訂單計算過程中宕機的場景,探索宕機恢復時如何精準繼續計算訂單
      下一篇:《TypeScript圖形渲染實戰:2D架構設計與實現》 —1.2.2 安裝VS Code
      相關文章
      亚洲一区综合在线播放| 亚洲五月午夜免费在线视频| 亚洲欧洲精品无码AV| 另类小说亚洲色图| 亚洲精品无播放器在线播放| 亚洲夂夂婷婷色拍WW47| 亚洲精品456人成在线| 亚洲一区动漫卡通在线播放| 亚洲婷婷综合色高清在线| 精品亚洲aⅴ在线观看| 67pao强力打造67194在线午夜亚洲| 久久久久亚洲AV无码麻豆| 亚洲欧洲在线观看| 亚洲高清日韩精品第一区| 亚洲精品第一国产综合精品| 亚洲精品永久www忘忧草| 亚洲一级毛片免费观看| jlzzjlzz亚洲jzjzjz| 狠狠色香婷婷久久亚洲精品| 亚洲人成综合网站7777香蕉| 亚洲色精品三区二区一区| 亚洲国产精品无码久久九九大片| 亚洲爆乳无码专区www| 狠狠综合亚洲综合亚洲色| 亚洲国产精品视频| 中文字幕亚洲图片| 国产aⅴ无码专区亚洲av| 亚洲乱亚洲乱淫久久| 亚洲熟妇色自偷自拍另类| 亚洲国产精品xo在线观看| 亚洲sss综合天堂久久久| 亚洲另类无码一区二区三区| 337p日本欧洲亚洲大胆人人 | 91亚洲国产成人久久精品网站| 91亚洲精品视频| 亚洲人精品亚洲人成在线| 久久精品亚洲日本波多野结衣| 亚洲高清偷拍一区二区三区| 国产国拍亚洲精品福利| 亚洲AV无码国产丝袜在线观看 | 亚洲国产精品专区在线观看|