android
帅子o
交流与学习
展开
-
Android WIFI ADB 插件小小的安利
还在觉得真机调试程序时数据线碍事吗?还在为数据线连接不稳而惆怅吗?想要在床上调试也能自由将手机拿来拿去吗?Android WIFI ADB 插件能帮助你。受新冠状病毒疫情影响,需要在家办公(摸鱼),能躺着便不坐着。但真机调试程序又不想再来根数据线,所以用了下Android WIFI ADB 插件。安装成功重启后便会看到顶着绿色wifi的机器人按钮通过数据线脸上手机,...原创 2020-02-08 21:40:18 · 788 阅读 · 0 评论 -
Mac Android Studio 使用Genymotion模拟器 安装记录与坑
本来计划过年期间去旅游,结果爆发了新冠状病毒疫情。哪也去不了,只能小区楼下旅旅游。过完年后开始上班,不过是在家办公。本想在家办公能摸摸鱼,结果发现该干的活一点也没少。我的电脑是macbook,连接usb需要type-c转usb转接头,但转接头放公司了,所以就想到安装模拟器。最初使用android studio的模拟器发现x86系统的模拟器速度很快,但arm的模拟器非常慢。于是便开始使用Ge...原创 2020-02-08 21:11:01 · 3343 阅读 · 0 评论 -
android studio library打包jar
我们以这个library为例,我们要将com.halewang.library目录下的内容打成jar包 首先我们要执行make project转载 2017-08-03 18:37:29 · 371 阅读 · 0 评论 -
cling-java,android的协议栈
译文地址:https://github.com/4thline/clingCling 类库是由 Java 实现的 DLNA/UPnP 协议栈。这个项目的目的不但严格规范遵守,完整清晰大量的api,而且有丰富的spis用于轻松的定制化。翻译 2017-08-10 18:32:40 · 3659 阅读 · 2 评论 -
AndroidStudio如何引入so包
先说前提条件,我的AndroidStudio版本是2.2 Preview 3,版本是2.1的同学应该也是一样的。然后说结论吧,有些同学可能赶着做项目:结论:so包应该放在相应模块(比如app模块)下的src目录下的main目录下的jniLibs目录。注意是jniLibs,最后边有个s,不是jniLib,并且L要大写。如果你在src/main目录中看不到jniLibs目录,那你只需要自己建转载 2017-08-08 10:31:28 · 300 阅读 · 0 评论 -
getmeasuredwidth getwidth 区别
getMeasureWidth()方法在measure()过程结束后就可以获取到了,而getWidth()方法要在layout()过程结束后才能获取到。另外,getMeasureWidth()方法中的值是通过setMeasuredDimension()方法来进行设置的,而getWidth()方法中的值则是通过视图右边的坐标减去左边的坐标计算出来的。原创 2017-06-12 17:13:41 · 735 阅读 · 0 评论 -
android view的事件传递机制学习笔记
1.view 中的dispatchTouchEvent方法返回值为 onTouchEvent(event); 2.dispatchTouchEvent方法调用了ontouch方法。 ontouch方法在view 中是OntouchListener接口的抽象方法。3.dispatchTouchEvent 中的ontouch方法要优先于onTouchEvent(event); 执行。oncli...原创 2015-12-25 16:43:24 · 448 阅读 · 0 评论 -
反编译apk
1.首先将apk后缀改成 .zip2.解压出里面的classes.dex文件到 dex2jar这个目录下3.cmd进入文件所在目录中,执行d2j-dex2jar classes.dex命令4,之后在文件夹下就会出现 classes-dex2jar.jar 文件,这个文件就是反编译后的文件5.使用jd-gui工具进行查看ps:dex2jar 这个工具用于将dex文原创 2017-11-29 10:52:29 · 264 阅读 · 0 评论 -
发布应用时控制log日志输出
在Android开发的过程中,我们使用android.util.Log来打印日志,以便观察调试信息和输出结果。但是当我们将应用发布的时候,并不希望再显示这些信息,一方面影响用户的机器性能,另一方面也会暴露我们应用的一些关键信息,对应用的安全造成威胁。所以,在正式发布应用的时候,我们会移除或者隐藏这些Log信息,以下介绍几种方法。方法一:在打印Log的时候进行条件判断if(BuildConf转载 2017-12-15 17:07:36 · 583 阅读 · 0 评论 -
LeakCanary源码分析整理
LeakCanary 的原理总结如下 监听 Activity 的生命周期 在 onDestroy 5s之后,创建相应的 Refrence 和 RefrenceQueue,并启动后台进程去检测 一段时间之后,从 RefrenceQueue 读取,若读取不到相应 activity 的 Refrence,有可能发生泄露了,这个时候,再促发 gc,一段时间之后,再去读取,若在从 ...原创 2019-01-21 14:43:45 · 181 阅读 · 0 评论 -
Android scrollview控件无法定位顶部问题
项目中使用到了scrollview嵌套recyclerview。这样导致再加载页面数据时,scrollview无法定位到顶部的情况。这是由于焦点导致的问题。在加载页面时,scrollview的子view获取到焦点,scrollview便会滑动到焦点的位置,就产生了...原创 2019-05-21 12:01:33 · 776 阅读 · 0 评论 -
常见git问题总结
1.coding上建立了分支,但本地没有 git checkout -b name git pull origin name2.将本地分支推送到远程库 git push origin master原创 2016-11-24 14:35:38 · 250 阅读 · 0 评论 -
viewpager+fragment 懒加载操作
项目当中使用到tablayout+viewpager+fragment组合, 也是现在app非常流行的一种设计.viewpager切换页面时,让fragment进行懒加载操作,是比较好的体验,节省省流量,避免预加载时造成的卡顿现象.懒加载操作主要使用到fragment 的 setUserVisibleHint() , 及getUserVisibleHint()方法setUserVisi原创 2016-05-28 17:13:28 · 2232 阅读 · 2 评论 -
Viewpager在调用notifyDataSetChanged()时,界面无刷新
相信很多做过Viewpager的同学肯定遇到过这个问题,这个是bug还是android就是如此设计的,我们不做讨论。总之,它确实影响我们功能的实现了。 可能不少同学选择为Viewpager重新设置一遍适配器adapter,达到刷新的目的。但是这种方法在大多数情况下,是有问题的。追踪源代码: 为什么调用数据更新的方法,Viewpager却没有更新呢,我们跟进该方法的源代码看一下。转载 2016-11-08 17:07:32 · 220 阅读 · 0 评论 -
android viewgroup 的事件传递机制学习笔记
1.复写viewgroup的 onInterceptTouchEvent方法, 返回true会拦截子类事件,false不会拦截,交由子view的 dispatchTouchEvent方法。2.viewgroup 中有一个dispatchTouchEvent方法,在该方法中disallowIntercept是指是否禁用掉事件拦截的功能,默认是false,也可以通过调用request原创 2015-12-25 16:47:22 · 386 阅读 · 0 评论 -
textview 的 ontouch 方法返回值
tv.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction() ) { case MotionEvent.ACTI原创 2015-12-25 16:52:12 · 941 阅读 · 0 评论 -
android service 总结(1)
1.service简介 service 服务,相当于没有界面的activity,运行在主线程当中,后台服务;2.service 的开启 startservice 和stopservice 开启和关闭服务。 开启服务后会长期运行在程序的后台,不调用关闭服务,及时程序退出,服务依然会运行。3.service 与 activity 的通信 bindService 和原创 2016-01-11 16:51:44 · 366 阅读 · 0 评论 -
android 属性动画总结
1.valueAnimator类可以对值进行平滑多度,设置持续时间等,重复类型等2.ObjectAnimator类可以操作object对象,可以实现位移,缩放,旋转,渐变等效果;3.animatorSet 组合动画,将动画进行组合使用。4.animation类中有addlistenter方法,所以所有动画都可以添加监听。5.AnimatorListenerAdapter 可以只添加原创 2016-02-24 16:35:55 · 311 阅读 · 0 评论 -
补间动画
补间动画(Tween Animation)补间动画与逐帧动画在本质上是不同的,逐帧动画通过连续播放图片来模拟动画的效果,而补间动画则是通过在两个关键帧之间补充渐变的动画效果来实现的。补间动画的优点是可以节省空间。目前Android应用框架支持的补间动画效果有以下5种。具体实现在android.view.animation类库中。AlphaAnimation:透明度(alpha)渐变效果转载 2016-05-26 11:30:56 · 299 阅读 · 0 评论 -
android studio 性能优化
开启gradle单独的守护进程在下面的目录下面创建gradle.properties文件:/home//.gradle/ (Linux)/Users//.gradle/ (Mac)C:\Users\\.gradle (Windows)把下面配置复制gradle.properties文件也可以优化:# Project-wide Gradle settings.# I转载 2016-07-15 10:22:25 · 418 阅读 · 0 评论 -
Git的忽略文件的语法规则
注意忽略只对未跟踪文件有效,对于已加入版本库的文件无效。一、三级忽略文件1. 版本库共享式忽略文件版本库中目录下的.gitignore文件作用于整个目录及子目录,会随着该版本库同其他人共享。2. 本地的针对具体版本库的独享式忽略文件即在版本库.git目录下的文件info/exclude中设置文件忽略3. 本地的全局的独享式忽略文件通过Git的配置变量core.exclu转载 2016-07-05 16:52:45 · 2765 阅读 · 0 评论 -
保存与恢复activity的状态
原文地址:http://coolxing.iteye.com/blog/1279447一般来说, 调用onPause()和onStop()方法后的activity实例仍然存在于内存中, activity的所有信息和状态数据不会消失, 当activity重新回到前台之后, 所有的改变都会得到保留. 但是当系统内存不足时, 调用onPause()和onStop()方法后的activity可转载 2016-07-18 16:45:01 · 294 阅读 · 0 评论 -
Activity保存状态
本篇随笔将详细的讲解Activity保存状态的概念,也就是saving activity state。一、Activity状态保持概念保存Activity的状态是非常重要的,例如我们在玩一个游戏的时候,突然来了一个电话,这个时候在接听完电话之后我们返回到游戏中,这个时候我们希望游戏还是之前那个进度,或者说发生突发事件,游戏这个应用程序被关闭了,这个时候我们如果再重新打开游戏的话,我们如果还转载 2016-07-19 15:24:59 · 657 阅读 · 0 评论 -
eclipse项目迁移android studio
1.eclipse 点击file - export ,点击generate gridle builde file, 然后点击下一步,下一步2. 打开 android studio 回到欢迎界面, 点击open exist (ADT GRIDLE ...) 然后下一步3.修改gridle 版本。 解决android studio 报错的各种问题。原创 2016-06-23 15:11:32 · 246 阅读 · 0 评论 -
android studio 常见问题总结
如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的是生成Build Gradle的文件。因为Android Studio 是用Gradle来管理项目的,具体操作步骤如下:从Eclipse中导出1.将你的ADT插件版本升级到22.0以上。2.在Eclipse中,选择File-->Export。3.在弹出原创 2016-06-23 15:37:33 · 2052 阅读 · 0 评论 -
android 代码混淆
android studio 代码混淆设置报错全文:Error:Execution failed for task ':demo:packageRelease'.> Unable to compute hash of D:\testProject\demo\build\intermediates\classes-proguard\release\classes.jar解决方法很简单,只要在混...原创 2016-06-23 17:31:34 · 286 阅读 · 0 评论 -
Git 命令总结
ADD AND COMMIT1. git init 初始化一个 Git 仓库(repository),即把当前所在目录变成 Git 可以管理的仓库。2. git add 文件把文件添加到 暂存区(stage),可被 track 追踪纪录下来。可多次使用来添加多个文件。3. git add * 添加所有修改到暂存区,效果同 git add all,待验证。4.转载 2016-08-18 09:50:42 · 6518 阅读 · 0 评论 -
Token在android中的使用
首先Token是一个怎么样的东西,Token存在的意义又在哪里?学过php或是其他web开发的人都知道一个东西叫session和cookie,这些东西可以在服务器或是本地保存一些东西,比如说登录状态,当用户登录后可以通过session或是cookie在本地保存一段时间的登录状态,在这段时间内,用户再度登录的时候就不用再输入用户名和密码了,但是过了一段时间后,用户需要再次进行身份认证,这样一来的话,转载 2016-10-10 15:10:31 · 1380 阅读 · 0 评论 -
android service 总结(2)
1.service 与 Thread: service运行在主线程当中,在service中执行耗时的操作同样会ANR。 Thread 的回收优先级比 service高,所以当内存不足的时候会优先回收Thread。 回收的优先级从高到低依次是 空进程,后台进程,服务进程,可视进程,前台进程。2.远程Service: 声明service为远程进程,需要更改清单文件 andr...原创 2016-01-08 13:25:49 · 273 阅读 · 0 评论