android知识点小记

安卓官方文档

View

ViewGroup

LayoutParams

RelativeLayout相关属性
android布局介绍

Activity

Fragment

Button

Button 的源码只有简单几个构造器,默认设置了一个 com.android.internal.R.attr.buttonStyle 的style.

遇到问题:

  • 对于其他所有属性都相同的情况下, Button 的高度比TextView 的 高度要高不少,而且Button内的字体有被切边,显示不全的情况。
    • 解决方案: 调用setPadding(0, 0, 0, 0), 估计是因为上述Style中有设置按钮的默认padding, 日后查看源码。

ToggleButton 双状态按钮

Surface

SurfaceView

  • setZOrderMediaOverlay 不管它的层级如何,直接显示在所有媒体前

SurfaceHolder

Android图形系统之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的联系
Android笔记:SurfaceView与SurfaceHolder对象

Environment

  • getExternalStorageDirectory()
    • 返回SD卡的绝对路径

Context

  • getPackageName()
    • 返回包名
  • public abstract Object getSystemService (String name)
    • 获取一些系统相关的管理器

返回 应用在 【内置存储/SDCARD】 上的【数据目录files/缓存目录cache】

  • getCacheDir()
  • getFilesDir()
  • getExternalFilesDir(
  • getExternalCacheDir()
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //用于获取可写缓冲区的一段代码
    public String getDiskCacheDir(Context context) {
    String cachePath = null;
    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
    || !Environment.isExternalStorageRemovable()) {
    cachePath = context.getExternalCacheDir().getPath();
    } else {
    cachePath = context.getCacheDir().getPath();
    }
    return cachePath;
    }

File

返回 [定义时的路径/ 绝对路径 / 规范化路径(不包含./..的路径)]

  • public String getPath ()
  • public String getAbsolutePath ()
  • public String getCanonicalPath ()

RandomAccessFile

前人引路

通过DexClassLoader来动态加载类

Android动态加载基础 ClassLoader工作机制

1
2
3
4
DexClassLoader loader = new DexClassLoader("dexPath", "optimizedDirectory", "libraryPath", parent);
Class class = loader.loadClass("classpath");
Constructor ctor = class.getConstructor(Class...<?> parameterTypes);
Object obj = ctor.newInstance(Object... args);

Environment

  • SDCARD 是否存在
    • Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
  • SDCARD 不可移除
    • Environment.isExternalStorageRemovable()
  • 获取SDCARD目录fi
    • Environment.getExternalStorageDirectory()

NET

连接网络

ConnectivityManager

  • 获取实例
    1
    Context.getSystemService(Context.CONNECTIVITY_SERVICE)`

SSLContext

HttpURLConnection

URI和URL

SECURITY

KeyStore

KeyFactory

Java使用RSA加密解密签名及校验

IO

JAVA-加密解密

Runable

AsyncTask

TimerTask

查看jar包方法数

參考链接

1
2
3
4
5
6
7
8
#查看apk的method总数
dexdump -f app.apk | grep method_ids_size
#查看apk的field总数
dexdump -f app.apk | grep field_ids_size

#查看jar的method 总数
dx --dex --verbose --no-strict --output=/home/Desktop/temp.dex ~/Desktop/xxx.jar > ~/Desktop/temp.log
cat temp.dex | head -c 92 | tail -c 4 | hexdump -e '1/4 "%d\n"'

adb

  • 启动手机上的APP
    adb shell am start -n “org.cocos2dx.test_dragon/org.cocos2dx.cpp.AppActivity
  • 过滤输出
    1
    2
    adb logcat  tag:[V | D | I | W | E | S] 
    adb logcat *:D 输出所有Debug以上级别的输出
1
android:launchMode="singleInstance"

android知识点小记
https://leafflow.top/2016/04/12/other/android知识点小记-2016-04-12/
作者
vollen
发布于
2016年4月12日
许可协议