`
jonson
  • 浏览: 164900 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android 开发常用代码备查[更新20150520]

阅读更多

30.分析App启动速度工具

adb shell am start -W pkgname/lauchactivityname

 

 

29.查看三方应用或是系统应用签名

    首先:用winrar打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件。

     

keytool -printcert -file META-INF/CERT.RSA
jarsigner -verbose -keystore ./xiaoying_key -signedjar signed.apk test.apk alignname
zipalign 4  src.apk  dest.apk

 

 

28.日期格式化:

Format formatter3 = new SimpleDateFormat("MMMM d'th' yyyy");
    String today3 = formatter3.format(new Date());
    System.out.println("Today : " + today3);

 

27.

在support v4中的fragment startActivityForResult时,必须使用this.startActivityForResult()而不是getActivity().startActivityForResult()

原因是v4的fragment.startActivityForResult()中,调用了startActivityFromFragment(),

 

其中对requestCode做了处理,把requestCode的高16位指定fragment index,然后低16位用于原本的requestCode

 

26.下载googleplay 中的app

2.输入要下载的apk package name,或该apk google play完整URL

25.查看apk 签名

用winrar打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件,通过

keytool-printcert-file META-INF/CERT.RSA

24.ListView或GridView中android:clipToPadding属性的使用说明示例

该属性的解释: 

Defines whether the ViewGroup will clip its drawing surface so as to exclude the padding area. 

什么意思呢?就是说: 

clipToPadding属性定义了是否允许ViewGroup在padding中绘制,该值默认为true,即不允许. 

所以若我们给ListView设置了android:paddingTop="70dip" android:paddingBottom="70dip" 

那么我们可以看到ListView的头部以上和尾部以下都占有70大小的padding,在滑动ListView的过程 

中这个padding当然是存在的.在padding部分是看不到ListView的item的,本质上是在这两部分没有绘制

我们的ListView 

23.eclipse 内存分析工具MAT插件安装地址:

MAT主站https://eclipse.org/mat/downloads.php

 

 

22.ADB链接错误:adb server is out of date

出现这个错误的原因是 adb的端口被占用了,所以adb server无法启动。

首先要检查是不是这个原因,通过以下命令

C:\Users\xxxx>adb nodaemon server  
cannot bind 'tcp:5037'

 然后通过命令查看那个进程占用了此端口:  netstat -ano | findstr "5037"  

 

  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       4900
  TCP    127.0.0.1:5037         127.0.0.1:53433        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:53438        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:53443        TIME_WAIT       0

 最后通过命令杀死改进程就OK 了

 

tskill 4236

 

 

 

21.从Raw目录读取文本文件 ,并且以字符串形式读入

public static String readRawTextFile(Context ctx, int resId)
{
    InputStream inputStream = ctx.getResources().openRawResource(resId);

    InputStreamReader inputreader = new InputStreamReader(inputStream);
    BufferedReader buffreader = new BufferedReader(inputreader);
    String line;
    StringBuilder text = new StringBuilder();

    try {
        while (( line = buffreader.readLine()) != null) {
            text.append(line);
            text.append('\n');
        }
    } catch (IOException e) {
        return null;
    }
    return text.toString();
}

 

20.android checkbox 设置图标与文字之间的距离。

     Jelly Bean 版本及之后的新版本只需要设置 属性即可   

android:paddingLeft="5dp"
 对于其它版本的系统需要
final float scale = this.getResources().getDisplayMetrics().density;
mChkbox.setPadding(mChkbox.getPaddingLeft() + (int) (24.0f  * scale + 0.5f), mChkbox.getPaddingTop(), mChkbox.getPaddingRight(),
					mChkbox.getPaddingBottom());
 其中24.0f是选择图标的DP值。

 

19.android include 标签使用注意事项

如果你在使用<include>标签时,为了对别的布局属性生效,你必须都覆盖android:layout_height和android:layout_width属性。如果没有覆盖,那么其它布局属性如align等都会无效。

 

 

18.动画接口

建议使用View.startAnimation(ani)接口,实践发现 setAnimation接口,无法调用到动画的setAnimationListener的回调。

 

 

17.生成圆角图片

  主要原理就是使用下面这个画图接口来生成圆角图片

 

 canvas.drawRoundRect

 

 

16.查看apk的签名信息命令

 

jarsigner -verify -verbose -certs abc.apk

 

15.Android中Activity finish的接口。

 

关闭自己    Finish()
关闭由自己 StartActivity启动的Activity    FinishActivity(requestcode);

 

14.动态修改button等控件尺寸。

 

LayoutParams param = m_AddFiles.getLayoutParams();
param.height = 202;

 

 

13.onSaveInstanceState方法的执行时机。

     该方法会在程序非正常退出的情况下被调用,但是它的调用是不能保证的。

 

12.将控制台输出的LOG信息输出到文件中。

 

adb logcat > ' filename'

 输出的文件在当前执行命名的文件目录下。


11.关闭android的music service.

 Intent i = new Intent("com.android.music.musicservicecommand");
       i.putExtra("command", "pause");
       mContext.sendBroadcast(i);


10.控制软键盘的显示。
不显示回车键,需要在xml配置里增加属性配置:

android:singleLine="true"



9.如何是application全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);


在Oncreate的时候调用这两个语句。

8.隐藏application  Title bar

requestWindowFeature(Window.FEATURE_NO_TITLE);



7.如何获取屏幕尺寸

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();


6.Bitmap ,Drawable 相互转换

Drawable d ;
Bitmap bitmap = ((BitmapDrawable)d).getBitmap();




5.android:padding和android:layout_margin的区别.
android:padding是用来控制当前view自己内部 child的位置关系的。
android:layout_margin是用来控制自己与其它跟自己同级的VIEW的位置关系的。


1.如何设置软键盘不自动弹出。
在activity的oncreate方法中设置window的softinputmode.
代码如下:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);


2.Android所提供给用户的的一下系统的Service
像NotificationManager Vebrator AlarmManager 都是比较常用的。
WINDOW_SERVICE                      WindowManager                    管理打开的窗口程序
LAYOUT_INFLATER_SERVICE             LayoutInflater                   取得xml里定义的view
ACTIVITY_SERVICE                    ActivityManager                  管理应用程序的系统状态
POWER_SERVICE                       PowerManger                      电源的服务
ALARM_SERVICE                       AlarmManager                     闹钟的服务
NOTIFICATION_SERVICE                NotificationManager              状态栏的服务
KEYGUARD_SERVICE                    KeyguardManager                  键盘锁的服务
LOCATION_SERVICE                    LocationManager                  位置的服务,如GPS
SEARCH_SERVICE                      SearchManager                    搜索的服务
VEBRATOR_SERVICE                    Vebrator                         手机震动的服务
CONNECTIVITY_SERVICE                Connectivity                     网络连接的服务
WIFI_SERVICE                        WifiManager                      Wi-Fi服务
TELEPHONY_SERVICE                   TeleponyManager                  电话服务

获取服务:

ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);


3.获取当前系统的语言。
java.util.Locale中有详细定义

String locale = context.getResources().getConfiguration().locale.getLanguage();



4.对于android2.2 及android2.3中%s  %d的转义
如果strings.xml字符串定义中出现 %s  %d等输出格式字符,需要转义。
转义方法为:%+符号序号+$+[原来的符号如s\d],
举例来说:如果<string name="test">你好%s,你的分数为:%d.</string>
应该转义为:<string name="test">你好%1$s,你的分数为:%2$d.</string>

 

3
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics