转自:农民伯伯: 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;//320int 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中注册,否则会报空指针错误。如:<activity android:name="com.common.TestView"> ,注意是包名+类名。

  八、             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          使用系统的图标

例如调用系统打电话的图标:

  <ImageView android:src="@android:drawable/ic_menu_call"

  图标名称和效果(Android1.5和1.6):

http://since2006.com/android/1.5-drawables.php

http://since2006.com/android/1.6-drawables.php

  10.2          让控件透明,如ImageButton

设置android:background="@null"

  10.3          在layout中直接指定onclick方法

不用手动绑定,在layout中设置android:onClick=”methodName”,methodName为对应Activity中的方法,如下格式:

public void methodName(View view){} (适应1.6以上版本)

  10.4          用PC键盘控制模拟器

PC键盘

模拟器按键

说明

Home

Home

主页

F2

Menu

菜单

Esc

Back

后退

F3

Call

打电话

F4

Hangup

挂断

F5

Search

搜索

Ctrl+F12

横竖屏切换

  

10.5          进入界面就显示/隐藏软键盘

在AndroidManifest.xml中设置activity的

android:windowSoftInputMode="stateHidden"

  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,内容如下:

<?xml version="1.0" encoding="utf-8"?>  <resources>  <style name="NoTitle" parent="android:Theme">  <item name="android:windowNoTitle">true</item>  </style>  </resources>  

2.然后在AndroidManifest.xml中需要去掉title bar的activities的节点上加上一个样式属性,代码如下

<activity android:name=".view.AutoTaskDemo" android:label="@string/app_name"  android:configChanges="keyboardHidden|orientation|locale" android:theme="@style/NoTitle">  

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

把需要去掉title bar的activities的节点上加上一个样式属性,代码如下:

<activity android:name=".view.SettingActivity"  android:configChanges="keyboardHidden|orientation" android:theme="@android:style/Theme.NoTitleBar"/>  

也可以在AndroidManifest.xml文件的application节点上修改,对所有的activity都有效,代码如下:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">  

*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属性。

  1. 过程很简单:首先,将你控件的layout中的width、height设置为fill-parent,不要使用wrap——content。因为wrap-content的大小是不固定的。而weight(权重)这个属性很好的解决了这个问题。
  2. 当包裹在控件外面的Layout的width、height属性都设置为fill-parent时,可以利用weight的反比特性。即如果控件A设置weight为9,控件B设置weight为20,那么A所占的空间为20/(9+20),B所占的空间为9/(9+20)。这样的反比属性对任何分辨率下的手机都是合适的。
  3. 当然,字体就不行了。那怎么保证字体能够跟布局一样能够自适应呢?
  4. 呵呵,很简单,就是在你的res文件夹中创建一个文件夹,叫做values-320x240。其中320x240是你手机屏幕的分辨率,根据你手机屏幕的情况做不同的命名,例如values-800x480。在该文件夹下创建一个dimens.xml文件,定义各种字体的大小。那么系统就会自动根据你手机屏幕的分辨率去调用响应的文件夹。

另外,值得提醒的是,记得在你默认的values文件下的dimens.xml文件中也要写上相应的字体大小哦,因为当系统无法认识你手机屏幕大小的时候,它会自动去找你默认文件中的东西,没有写的话程序会崩溃。

Android 开发小技巧(2)相关推荐

  1. Android开发小技巧 | 一句命令搞定截屏

    -- 简书作者 谢恩铭 转载请注明出处 一句命令搞定截屏 在安卓开发中, 我们很多时候都要用到截屏这个功能. 有时是为了演示, 有时是为了报告问题(比如在Bugzilla, Jira, Redmine ...

  2. Android 开发小技巧 | 一句命令搞定截屏

    -- 作者 谢恩铭 转载请注明出处 一句命令搞定截屏 在安卓开发中, 我们很多时候都要用到截屏这个功能. 有时是为了演示, 有时是为了报告问题(比如在Bugzilla, Jira, Redmine等B ...

  3. Android开发-小技巧汇总2

    启动虚拟机时,在 launch options 窗口中 有个 wipe user data ,勾选它,将会让虚拟机 [恢复出厂设置] 2.[如果想让自己的应用程序有多个启动图标:] 为一个应用的 多个 ...

  4. android开发小技巧:实现listview异步加载图片

    2019独角兽企业重金招聘Python工程师标准>>> 针对listview异步加载图片这个问题,麦子学院android开发老师讲了一种非常实用的方法,麦子学院android开发老师 ...

  5. Android开发——小技巧:推荐辅助工具(icon图标网站、在线取色网站以及视频学习网站)

    图标网站: Iconfont-阿里巴巴矢量图标库 https://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2 在线取色网站: R ...

  6. Android开发小技巧之商品属性筛选与商品筛选

    前言 一周一篇文章,果真是不太容易.顺便吐槽一下上周也就是9月5号的文章,几天之内就耗完了我1.4G的空间流量,吓得我都抽搐了. 这个次为大家带来的是一个完整的商品属性筛选与商品筛选.什么意思?都见过 ...

  7. android+开发最新技巧,android开发小技巧

    一般来说,APP的启动方式主要分为两种:冷启动和热启动. 冷启动:启动应用时,后台没有该应用的进程,系统会重新创建一个新的进程分配给该应用,即冷启动: 热启动:启动应用时,后台已有该应用的进程(例如: ...

  8. android开发可用技巧

    android开发可用技巧 都是本人在android开发的学习过程中用到的小技巧,记录于此,便于以后查找 获取屏幕尺寸 DisplayMetrics dm = getResources().getDi ...

  9. 移动Web开发小技巧

    移动Web开发小技巧 添加到主屏后的标题(IOS) name="apple-mobile-web-app-title" content="标题"> 启用  ...

最新文章

  1. 教你设计一个超牛逼的本地缓存!
  2. lisp点转为vla_一种将Region转为Polyline的方法
  3. 无线光通信-CDMA中闭环链路的功率控制误差
  4. DL之DNN优化技术:利用Batch Normalization(简介、入门、使用)优化方法提高DNN模型的性能
  5. spark-2.1.0 集群安装
  6. 博图程序需要手动同步_贴吧求助帖博图实例单按钮控制灯的程序
  7. 【动态规划】机器分配 (ssl 1639)
  8. 图论 —— 带花树算法
  9. Android IntentService的使用与源码解析
  10. 如何用C++做一个简单的QQ整人程序
  11. Latex中文期刊论文模板
  12. SQL常用连接查询(JOIN)
  13. bad interpreter: No such file or directory解决办法
  14. ElasticSearch基础介绍:5:可视化工具之cerebro
  15. 使用python画出彩虹效果
  16. 大学计算机基础教学大纲,大学计算机基础教学大纲
  17. ESP8266-Arduino编程实例-TMP102数字温度传感器驱动
  18. 电视墙如何设计?上海极家装修怎么样?
  19. e5cc温控仪通讯参数设定_e5cc温控器参数设置
  20. Python爬虫抓取百度搜索图片

热门文章

  1. 《C++ 黑客编程揭秘与防范(第2版)》——6.2 详解PE文件结构
  2. openstack理论知识【Openstack证书考试 2022】
  3. 润乾报表数据集中参数和宏的使用方法
  4. 【算法】计划看电影-java
  5. 宏碁笔记本关闭安全启动Secure Boot,就是改为Disabled
  6. vue 实现 tooltips的效果
  7. PHPWord的使用
  8. [机缘参悟-33]:眼见不一定为实,大多数时候“眼见为虚”
  9. 区块链的硬分叉、软分叉介绍
  10. 09组团队项目-Alpha冲刺-1/6