
Android
文章平均质量分 55
h416756139
这个作者很懒,什么都没留下…
展开
-
你应该知道的那些Android小经验
做Android久了,就会踩很多坑,被坑得多了就有经验了,闲暇之余整理了部分,现挑选一些重要或者偏门的“小”经验做个记录。查看SQLite日志因为实现里用了Log.isLoggable(TAG, Log.VERBOSE)做了判断,在LessCode的LogLess中也参考了这种机制:https://github.com/openproject/LessCode/blob/mas转载 2016-03-21 09:57:56 · 418 阅读 · 0 评论 -
APK魔鬼瘦身
因为推广的需要,公司需要把APK的大小再“减小”一下,4M以内!当达到4M以内之后,公司建议说,能否再压压?2M如何?瘦身前因为平时就考虑到大小的限制,所以很多工作已经做过了,如下列举现在的状态:7.3M(Debug版本)和6.5M(Release版本)开启minifyEnabled开启shrinkResources转载 2016-03-21 10:13:23 · 297 阅读 · 0 评论 -
android 中 dumpsys 命令使用
adb shell dumpsys,默认打印出当前系统所有service信息,在后面可加上具体的服务名需要列出当前运行的服务,可运行:adb shell dumpsys | findstr DUMP下面简单列下我用到的一些命令...(在编写脚本时需要获取一些状态值供判断用)获取设备分辨率:adb shell dumpsys display | findstr Display转载 2016-03-10 11:28:59 · 442 阅读 · 0 评论 -
Android gradle 批量改包名
1 修改build.gradle内容如下:apply plugin: 'com.android.application'android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.s.m1"转载 2016-03-10 16:37:03 · 517 阅读 · 0 评论 -
ANR SUSPENDED 可能情况
ANR SUSPENDED 情况包括:GCDebugMain Thread for/while 死循环;代码演示: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC转载 2016-03-24 14:31:09 · 1259 阅读 · 0 评论 -
Android 加载外部so
public void load(View view) { JniGg.getHello(); File dir = this.getDir("jniLibs", Activity.MODE_PRIVATE); File distFile = new File(dir.getAbsolutePath() + File.separator + "test.so");转载 2016-04-27 16:40:06 · 591 阅读 · 0 评论 -
Xposed插件开发基础篇
xposed hook java官方教程:https://github.com/rovo89/XposedBridge/wiki/Development-tutorial官网:http://repo.xposed.info/module/de.robv.android.xposed.installerapk:http://dl-xda.xposed.info/modul转载 2016-05-24 17:20:41 · 8157 阅读 · 0 评论 -
Xposed插件开发进阶篇
Dalvik 孵化器 Zygote (Android系统中,所有的应用程序进程以及系统服务进程SystemServer都是由Zygote进程孕育/fork出来的)进程对应的程序是/system/bin/app_process. Xposed 框架中真正起作用的是对方法的 hook。因为 Xposed 工作原理是在/system/bin 目录下替换文件,在 install 的时候需要 root转载 2016-05-24 17:21:49 · 4142 阅读 · 0 评论 -
Xposed插件Android.EagleEye
Android EagleEye是一个基于Xposed的应用,可以实现对Android系统API与应用自身方法的Hook,最终会将Hook的API或方法的信息以Log的形式输出,包括应用的uid、API或方法的名称、参数信息等。在使用Android EagleEye过程中对设备造成的任何风险自负特色可实现对Android系统API以及应用自身方法的Hook可根据配置转载 2016-05-24 17:22:46 · 2832 阅读 · 0 评论 -
移动无线测试技能树
常用IDEAndroidADTAndroid StudioiOSXcodeCommonAtomSublime TextVim基础知识Android掌握Android开发基础技能iOS掌握iOS开发基础技能web掌握web开发基础技能api掌握api相关基础知识测试掌握基本的测试用转载 2016-05-26 11:57:01 · 421 阅读 · 0 评论 -
Android 进程不死保活
参考:https://github.com/D-clock/AndroidDaemonService/blob/master/notes/Android%E8%BF%9B%E7%A8%8B%E4%BF%9D%E6%B4%BB%E7%9A%84%E7%A0%94%E7%A9%B6%E4%B8%8E%E5%AE%9E%E8%B7%B5.md转载 2016-05-26 15:50:43 · 732 阅读 · 0 评论 -
Android code snap
1. 设置前台服务,防止被杀:@Overridepublic void onCreate() { super.onCreate(); keepAlive();}private void keepAlive() { try { Notification notification = new Notification(); notif转载 2016-04-13 15:52:14 · 531 阅读 · 0 评论 -
Dagger 2: Step To Step 入门
http://www.androidchina.net/4624.html转载 2016-05-03 14:42:26 · 264 阅读 · 0 评论 -
DroidPlugin机制原理分析
参考: http://weishu.me/转载 2016-05-26 17:47:45 · 636 阅读 · 0 评论 -
bitmap占用内存大小总结
1/ 从网络加载:长*宽*4;2/ 从drawable加载, 最终长(图长*系数) * 最终宽(图宽*系数) *4 [系数= targetDensity / inDensity] [最终乘以系数的长宽遵循四舍五入]参考:http://www.androidchina.net/4726.htmlhttp://bugly.qq.com/bbs/forum.php转载 2016-05-03 15:29:51 · 742 阅读 · 0 评论 -
Android Studio 添加ndk右键工具
http://www.androidchina.net/4712.html转载 2016-05-03 15:49:52 · 458 阅读 · 0 评论 -
Android基础知识点汇总
这里收集了大家常用的一些Android代码,持续更新中,内容来自自己的平时积累和网络上看到的文章,部分原文地址在最下方。如有错误欢迎指正,如有侵权,请联系我删除。里面可能会有重复内容,请忽略,有需要的可以fork,fork前别忘了点赞哦setBackgroundResource(0) 可以移除 View 的背景色Resources.getSystem().getDispla转载 2016-05-14 12:06:53 · 7099 阅读 · 1 评论 -
Git入门指南十一:Git branch 分支与合并分支
十五. Git branch 分支查看当前有哪些branchbixiaopeng@bixiaopengtekiMacBook-Pro xmrobotium$ git branch* master新建一个branch xm2.xbixiaopeng@bixiaopengtekiMacBook-Pro xmrobotium$ git branch xm2.x切转载 2016-05-04 11:04:21 · 466 阅读 · 0 评论 -
Android应用保护
if ((getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE) != 0){ Log.e("com.droider.antidebug", "程序被修改为可调试状态"); android.os.Process.killProcess(androi转载 2016-05-23 19:44:30 · 380 阅读 · 0 评论 -
Dagger2 概念理解
@Inject: 标注需要通过Dagger注入的对象;@Module:提供注入对象的源头;Dagger在这里查找对象给@inject用;@Provide: Module池中,dagger为@inject查找的仅限被该注解标记的;@Component: 货车、桥梁;@inject与@Modulez之间的纽带;@Scope: 管理创建对象的声明周期:让他与某个对象生转载 2016-06-29 11:01:14 · 302 阅读 · 0 评论 -
[魅族Degao]Android客户端性能优化
众所周知,一个好的产品,除了功能强大,好的性能也必不可少。有调查显示,近90%的受访者会因为APP性能差而卸载,性能也是造成APP用户沮丧的头号原因。那Android客户端性能的指标都有哪些?如何发现和定位客户端的性能问题?本文结合多个项目的开发实践,给出了要关注的重要指标项目,以及定位和解决性能问题的一般步骤。性能优化应该贯穿于功能开发的全部周期,而不是做完一次后面便不再关注。每转载 2016-07-01 14:00:17 · 346 阅读 · 0 评论 -
Android内存告急,进程被系统回收
Android系统会根据不同等级的内存使用情况,调用这个函数,并传入对应的等级:TRIM_MEMORY_UI_HIDDEN 表示应用程序的所有UI界面被隐藏了,即用户点击了Home键或者Back键导致应用的UI界面不可见.这时候应该释放一些资源.TRIM_MEMORY_UI_HIDDEN这个等级比较常用,和下面六个的关系不是很强,所以单独说 下面三个等级是当我们的应转载 2016-03-10 14:30:46 · 2053 阅读 · 0 评论 -
RxJava 总结
RXJava 使用复杂场景,多个同时请求数据,改变数据,只取三个,多线程,刷新UI,让传统的各种calllback,变成同步的链式调用;代码维护性+可读性更佳;适用于大型项目;参考:https://github.com/cn-ljb/rxjava_for_android转载 2016-07-01 18:59:02 · 278 阅读 · 0 评论 -
Android studio 自动导入内部类
7.自动导入内部类Edictor->Code Style->Java->Imports->Insert imports for inner classes比如implements OnClickListener 不用必须写成View.OnClickListener2.自动导入所有类,而不是一个一个导入(导入类似于eclipse的ctrl+o)File->Settings->转载 2016-08-03 10:38:02 · 3231 阅读 · 0 评论 -
Fresco 概念总结
Drawee:负责图片展示,可以有多张图片DraweeView:负责展示图片的view,一般用其子类SimpleDraweeView DraweeHierarchy:组织维护最终的Drawable对象,相对于MVC的M;即对最终的图片展示效果做“ps”处理美化,DraweeController:与ImageLoad过程交互,提供接口callback参与下载pic过程DraweeCo转载 2016-08-03 10:44:44 · 356 阅读 · 0 评论 -
RxJava基础操作符 lift 与 compose区别
public interface Operator extends Func1, Subscriber> { // cover for generics insanity}lift(Operator operator)//用来转换Subscriberpublic interface Transformer extends Func1, Observable> { // cover fo转载 2016-09-09 14:46:18 · 2148 阅读 · 0 评论 -
Android Https相关完全解析 当OkHttp遇到Https
参考: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0831/3393.html转载 2016-10-25 07:54:16 · 414 阅读 · 0 评论 -
android studio 查找源码使用 jdk.table.xml
Mac下: /Users/xxx/Library/Preferences/AndroidStudio2.x/options/jdk.table.xml转自:http://blog.youkuaiyun.com/wj610671226/article/details/52352920转载 2016-11-08 08:08:05 · 3260 阅读 · 0 评论 -
隐藏Boss——ddmlib使用入门
ddmlib是DDMS工具的核心,堪称Android SDK中最不为人知的隐藏Boss,它封装了一系列对ADB的功能封装。DDMS工具虽然已经非常强大,可以展示非常多的Android性能监测数据,但是,它有一个很大的缺点,就是很多数据不能导出,而且很多功能也不能达到自定义的需求,因此,基于这些问题,利用ddmlib来完成自定义的功能定制,就是非常有用的了。完成DDMS功能的自定义设转载 2016-11-10 10:56:51 · 1050 阅读 · 0 评论 -
Android系统设置【android.provider.settings】
Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS);startActivity(intent); // 打开系统设置界面Intent mIntent = new Intent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);startActivi转载 2016-11-12 17:32:47 · 2042 阅读 · 0 评论 -
android 打开日历设定行程活动
Calendar beginTime = Calendar.getInstance();beginTime.set(2012, 0, 19, 7, 30);Calendar endTime = Calendar.getInstance();endTime.set(2012, 0, 19, 8, 30);Intent intent = new Intent(Intent.ACTION_INS转载 2016-10-27 16:13:45 · 2162 阅读 · 0 评论 -
adb shell 命令获取设备参数信息
adb shell prop获取所有的参数;adb shell cat /system/build.prop private static String getSystemProperty(String key, String defaultValue) { try { Class clz = Class.forName("an转载 2016-11-19 01:12:33 · 2655 阅读 · 0 评论 -
Android studio新项目提交到git
http://blog.youkuaiyun.com/hai1059876295/article/details/51331280如上通过图形化的界面,在"commit and push"时,改变新建push的新分支名;https://my.oschina.net/u/2367628/blog/508283转载 2016-12-18 12:02:35 · 922 阅读 · 0 评论 -
MAC下AndBug环境搭建
1、下载源代码 git clone https://github.com/swdunlop/AndBug.git2、进入目录编译 make翻译 2016-01-09 08:39:03 · 589 阅读 · 0 评论 -
RN源码分析
1.ReactInstanceManager:主要是用来创建及管理Catalyst的实例的上层接口,控制开发调试,生命周期与ReactRootView所在activity保持一致。2.ReactRootView:为启动入口核心类,负责监听及分发事件并重新渲染元素,App启动后,其将作为App的root view。3.CatalystInstance:顶级异步JSCAPI封装类,提供转载 2017-02-27 15:31:39 · 1021 阅读 · 0 评论 -
猴子测试
l launch your application and send 500 pseudo-random events to it:$ [color=red]adb shell monkey -p 【your.package.name】 -v 500[/color]原创 2011-01-10 19:01:11 · 109 阅读 · 0 评论 -
Activity的生命周期
在初級章節中一直努力地傳達給讀者:編寫 Android 平台的基本應用程式,跟編寫桌面應用程式的難度,兩者並沒什麼不同。甚至因為 Android 平台擁有免費、跨平台的開發工具,使得 Android 平台應用程式的開發更為單純。但是請別忘了,Android 平台也是個手機作業系統。撇掉其他功能不談,手機的特性,就是應該能隨時在未完成目前動作的時候,離開正在使用的功能,切換到接電話、接收簡訊模式...而且在接完電話回來應用程式時,還希望能看到一樣的內容。現在使用者使用智慧型手機,大多已習慣使用原创 2011-01-11 16:15:16 · 87 阅读 · 0 评论 -
如何获取手机和存储卡上的图片
ng [] proj={MediaStore.Images.Media.DATA}; Cursor cursor = managedQuery( uri, proj, // Which columns to return null, // WHERE clause; which rows to return (all rows)原创 2011-01-13 10:50:59 · 180 阅读 · 0 评论 -
重写baseAdapt的getview
ater = LayoutInflater.from(mContext); convertView = mLayoutInflater.inflate(R.layout.subject_item, null); textView = (TextView) convertView.findViewById(R.id.textView_item); imageView =(ImageView) convertView.findViewById(R.i原创 2011-01-13 17:02:51 · 100 阅读 · 0 评论 -
AppWidget RemoteViews 内存溢出
原创 2011-01-14 13:42:53 · 139 阅读 · 0 评论