android

内存分析工具(MAT)

作用

  • 查看内存使用情况
  • 查看某个类它对象占用的内存和引用数量
  • 分析GC

安装(eclipse)

  • 打开Eclipse – >help – > Install New Software
  • http://download.eclipse.org/mat/1.6/update-site/ (安装时1.6为最新)
  • 安装完成后提示重启Eclipse,重启后打开window – > open perspective->Memory Analysis ,说明安装成功

使用

使用方法详见: https://segmentfault.com/a/1190000003991636

作为一个 android 开发者学会使用MAT还是挺有意思的

PopupWindow 总结

构造方法 public PopupWindow (View contentView, int width, int height) // contentView 内容 // width 宽 // height 高 PopupWindow(View contentView, int width, int height, boolean focusable) // focusable 为 true 时, 返回键隐藏,可输入... 1234567 public PopupWindow (View contentView, int width, int height)// contentView 内容// width 宽// height 高 PopupWindow(View contentView, int width, int height, boolean focus ...

LinearGradient 线性渐变

LinearGradient 用来对某一个区域进行线性渐变, 父类为 Shader 构造参数 LinearGradient(float x0, float y0, float x1, float y1, int[] colors, float[] positions, Shader.TileMode tile) // 参数分别为 x0,y0为起始点坐标; x1,y1为结束点坐标; colors为渐变的颜色数组; positions 为颜色数组对应的起始位置, 为null时就是指colors均匀分布; tile 指的就是颜色渐变的平铺方式 LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1, Shader.TileMode tile) // 参 ...

android 中操作SQLite数据库

SQLiteOpenHelper类 SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法。 SQLiteOpenHelper(Context context,String name,SQLiteDatabase.CursorFactory factory,int version) 构造方法,一般是传递一个要创建的数据库名称那么参数 onCreate(SQLiteDatabase db) 创建数据库时调用 onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion) 版本更新时调用 getReadableDatabase() 创建或打开一个只读数据库 getWritableDatabase( ...

数据库事务

批量操作需要使用事务以节省时间 同一类型的数据库操作, 每一次操作都去打开关闭数据库会比较耗时, 此时使用事务的方式去操作数据库, 会将操作暂时缓存起来, 在最后执行时只需要打开一次数据库, 会大大的减少操作时间 新建一个列表存操作 ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>(); 1 ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperat ...

ViewStub

ViewStub 与 View.GONE 的比较 ViewStub延迟加载指定的布局, 比View.GONE节省资源, 在显示之前是不占用资源的 使用View.GONE属性布局在界面加载时仍会创建对象, 耗费内存 ViewStub 的显示 ViewStub在界面加载时不创建, 设置可见或.inflate();才会创建并显示里面的内容 ViewStub对象只可以使用inflate()一次, 即开始占用内存 在ViewStub在界面上创建之前调用它的布局中的控件(findViewById)会出错 android:id在ViewStub不可见前使用(可见后失效), android:inflatedId 在可见之后使用 使用例子 布局文件中 ...

通过 selector 资源自动改变文字颜色

一: 在 drawable 文件夹下新建xml文件 通过不同的状态自动选择颜色 text_color.xml xml <?xml version="1.0" encoding="utf-8"?> <item android:color="@color/text_blue_color" android:state_pressed="true"/> <item android:color="@color/text_defu_color"/> 12 <item android:color="@color/text_blue_color" android:state_pressed="true"/><item android:color="@color/text_defu_color"/> ...

eclipse 使用

报错: 导入项目已存在

Some projects cannot be imported because they already exist in the workspace

今天想导入一个项目A, 这个项目A是在项目B的基础上改的, 已经修改了项目A的包名, 在我的PC笔记本上两个项目可以同时存在, 当我想将项目A导入我的Macbook上时, 提示已存在, 项目B已在我的工作区内。
最后通过查资料发现eclipse可以通过项目下的 .project 的 name 标签区分不同的项目, 自己的项目A的 name 确实还是项目B的 name。改了之后可以顺利导入。

android插件化开发一

类加载器 DexClassLoader 加载sdcard目录下的apk或jar文件 PathClassLoader 加载路径必须在/data/app路径下 注意点 同一个Class = 相同的 ClassName + PackageName + ClassLoader DexClassLoader构造参数需要一个父加载器, 在父加载器里找不到类时,再从子加载器里加载 DexClassLoader调用loadClass方法加载指定类 代码示例 加载apk里的一个类里的一个方法 插件apk // package com.example.plug; public class GetPlug { public int getAdd(int a, int b) { return a + b; ...