android知识点小记
View
- setFocusable()
- setFocusableInTouchMode()
Android的Touch Mode
ViewGroup
LayoutParams
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
4DexClassLoader 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
2adb logcat tag:[V | D | I | W | E | S]
adb logcat *:D 输出所有Debug以上级别的输出
1 | android:launchMode="singleInstance" |