在 Android 开发中经常使用到的小功能,用于记录开发的那些事^_^

1. 获取 release 和 debug 版本的 SHA1

  1. public static String getSHA1(Context context) {
  2. try {
  3. PackageInfo info = context.getPackageManager().getPackageInfo(
  4. context.getPackageName(), PackageManager.GET_SIGNATURES);
  5. byte[] cert = info.signatures[0].toByteArray();
  6. MessageDigest md = MessageDigest.getInstance("SHA1");
  7. byte[] publicKey = md.digest(cert);
  8. StringBuffer hexString = new StringBuffer();
  9. for (int i = 0; i < publicKey.length; i++) {
  10. String appendString = Integer.toHexString(0xFF & publicKey[i])
  11. .toUpperCase(Locale.US);
  12. if (appendString.length() == 1)
  13. hexString.append("0");
  14. hexString.append(appendString);
  15. hexString.append(":");
  16. }
  17. String result = hexString.toString();
  18. return result.substring(0, result.length()-1);
  19. } catch (PackageManager.NameNotFoundException e) {
  20. e.printStackTrace();
  21. } catch (NoSuchAlgorithmException e) {
  22. e.printStackTrace();
  23. }
  24. return null;
  25. }

2. 打开 APP 华为手机提示全屏显示

  在 AndroidManifest.xml 中的 Application 节点下添加如下代码:

  1. <meta-data android:name="android.max_aspect" android:value="2.4" />

3. 保持屏幕常亮

  1. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  2.  
  3. getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

通常会在一个 Activity 的 onResume() 和 onPause() 方法中分别调用这两个方法。

4. ListView 动态设置数据时高度自适应

  1. package com.custom.ui.view;
  2.  
  3. import android.content.Context;
  4. import android.widget.ListView;
  5.  
  6. public class MyListView extends ListView {
  7.  
  8. public MyListView(Context context) {
  9. super(context);
  10. }
  11.  
  12. @Override
  13. public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
  14. int mExpandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
  15. super.onMeasure(widthMeasureSpec, mExpandSpec);
  16. }
  17.  
  18. }
  1. <com.custom.ui.view.MyListView
  2. android:id="@+id/lv_data"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:scrollbars="none"
  6. android:divider="@null"
  7. android:listSelector="@color/transparent"/>

5. 防止 ListView 动态设置数据时数据过长自动滑动至 ListView 底部

  1. android:descendantFocusability="blocksDescendants"
  2.  
  3. 该属性是当一个为view获取焦点时,定义 ViewGroup 和其子控件两者之间的关系。
  4. 属性的值有三种:
  5. beforeDescendantsViewGroup 会优先其子类控件而获取到焦点
  6. afterDescendantsViewGroup 只有当其子类控件不需要获取焦点时才获取焦点
  7. blocksDescendantsViewGroup 会覆盖子类控件而直接获得焦点

6. Android 强大的工具类推荐

  1. https://blankj.com/2016/07/31/android-utils-code/

Android 开发常用工具合集的更多相关文章

  1. 老李分享:android app自动化测试工具合集

    老李分享:android app自动化测试工具合集   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...

  2. Android开发常用工具汇总

    Android开发常用工具汇总,本文章不断更新完善 一.数据库小工具Sqlite Developer  SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的, ...

  3. Android开发常用工具类

    来源于http://www.open-open.com/lib/view/open1416535785398.html 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前 ...

  4. 最全Android开发常用工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.Pack ...

  5. C# 常用工具合集

    Visual Studio 2013 扩展 Visual Studio 2013 Update 4:是目前微软发布的最新版开发工具升级包,高效而且强大.下面的扩展都是该版本的Visual Studio ...

  6. android 开发 常用工具类

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38965311,本文出自[张鸿洋的博客] 打开大家手上的项目,基本都会有一大批的辅 ...

  7. 转发—Android开发常用的插件及工具

    作者:蓝之风 出处:http://www.cnblogs.com/vaiyanzi/ Android开发常用的插件及工具 1.GitHub,这个不管是做安卓还是其他,只要是开发就必上的网站,也是天朝没 ...

  8. 【转】Ubuntu常用软件合集

    [转]Ubuntu常用软件合集 Ubuntu常用软件合集 我用的使Ubuntu-Kylin14.04,原因呢主要是觉得使本土化的,自带了日历.输入法.优客助手等易于上手的应用.也省的每次安装完原生的系 ...

  9. es6常用基础合集

    es6常用基础合集 在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得 ...

随机推荐

  1. Java网上学习资料

    1.今天查找关于代理模式时找到的两个网站:take control with proxy design pattern

  2. 将Centos7的yum配置为阿里云的镜像(完美解决yum下载太慢的问题)

    2017-02-17 16:02:30 张老湿 阅读数 13768     http://mirrors.aliyun.com/help/centos?spm=5176.bbsr150321.0.0. ...

  3. Sql 按日期带条件统计

    select convert(char(8),[UseTime],112) dt,sum([UseMoney]) 合计,sum(case when [S_Number]=2 then UseMoney ...

  4. ClickHouse学习笔记

    1. 概述 ClickHouse是一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Management Syst ...

  5. Flask之DButils

    一.简介 在使用pymysql时遇到一些问题,就是当用户访问过多时,pymysql它同一时间只能处理一个线程.大大的降低了效率,对此我们基于DBUtils实现数据链接池. 二.安装与使用 创建数据库连 ...

  6. Spark 宽窄依赖和stage的划分

    窄依赖 父RDD和子RDD partition之间的关系是一对一的,或者父RDD一个partition只对应一个子RDD的partition情况下的父RDD和子RDD partition关系是多对一的 ...

  7. 使用ImageMagick在Linux系统上截图

    ImageMagick安装指令: sudo apt-get install imagemagick 安装完成后,输入 import screenshot.png 命令就可以开始截图.此时鼠标图标会变成 ...

  8. Gvim打造python编辑器,附自己的配置文件

    一. Gvim简介 Gvim的G指的是GUI,也就是图形化界面.相当于在vim包了一层图形化界面,相比之下gvim拥有更丰富的颜色和字体,还有菜单和滚动条,以及更友好的鼠标操作等,除此之外和vim并无 ...

  9. Linux 安装网络yum地址

    rpm -Uhv http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm   rpm -Uhv http:/ ...

  10. linux 导出mysql数据库表及数据

    导出表及结构 mysqldump -h地址ip -u用户名 -p密码 数据库名 > 数据库名.sql --连接数据库 mysql  -h地址ip -u用户名 -p密码 --使用数据库 user ...