Android
文章平均质量分 75
谢耀眼
坐标沈阳,欢迎骚扰。
展开
-
已有Android项目集成react native
文章目录已有Android项目集成react native环境Android studio 4.0.1gradle前置准备集成步骤效果应用地址已有Android项目集成react native环境Android studio 4.0.1gradlebuildscript { repositories { google() jcenter() } dependencies { classpath "com.android.too原创 2021-02-18 19:05:41 · 743 阅读 · 0 评论 -
Android线程池源码分析
文章目录Android线程池源码分析线程池执行流程图相关函数workerCountOfaddWorker(Runnable firstTask, boolean core)runStateOf(c);Worker类Worker(Runnable firstTask)runWorkergetTaskAndroid线程池源码分析线程池执行流程图相关函数int c = ctl.get(); if (workerCountOf(c) < corePoolSize) {原创 2020-10-19 19:42:24 · 525 阅读 · 0 评论 -
AIDL踩坑
AIDL踩坑oneway与out、inout不能连用会报错原创 2020-03-26 23:57:54 · 369 阅读 · 2 评论 -
获取apk的logo和视频文件的略缩图
APK/** * 获取Apk文件的Log图标 * @param context * @param apk_path Apk路径 * @return */ public static Drawable getApkThumbnail(Context context, String apk_path){ if(cont...原创 2018-08-13 19:04:12 · 1032 阅读 · 0 评论 -
关于getTop() .getBottom() .getLeft() .getRight()这几个函数
本人之前一直以为getTop()是View顶部距离父容器顶部的距离,则getBottom就是View底部距离父容器底部的距离,实际不然,并不是这样的,getTop确实是View顶部距离父容器顶部的距离,但是:getBottom却是View底部距离父容器顶部的距离,并不是距离父容器底部。 下面看代码<RelativeLayout xmlns:android="http://schemas.andro原创 2016-02-22 13:26:40 · 7542 阅读 · 1 评论 -
关于getMeasuredHeight和getHeight区别
关于getMeasuredHeight和getHeight区别getMeasuredHeight:是用于测量的高度,也就是View实际的高度(先暂时这么记,后面还有一个显示出来的高度),getMeasuredHeight的值是在onMeasure方法里面通过setMeasuredDimension();设置出来的。也就是说要在onMeasure方法之后调用,不能再之前,这样会得到0。 如果你的Vi原创 2016-01-23 23:06:36 · 13008 阅读 · 8 评论 -
Android权限详解
Android权限讲解,Android6.0以上以及Android5.1以下。原创 2017-09-15 13:55:05 · 618 阅读 · 0 评论 -
Android Studio 1.5.0版本引用library
多图,慎点原创 2016-03-19 19:05:49 · 335 阅读 · 2 评论 -
Android BitMap图片压缩
参考链接: bitmap的六种压缩方式,Android图片压缩 这篇文章对概念讲述的挺好的 Bitmap.Config ARGB_4444:每个像素占四位,即A=4,R=4,G=4,B=4,那么一个像素点占4+4+4+4=16位,是2个字节Bitmap.Config ARGB_8888:每个像素占四位,即A=8,R=8,G=8,B=8,那么一个像素点占8+8+8+8=32位,是4个字节...原创 2018-08-17 18:01:39 · 1044 阅读 · 0 评论 -
记录一下第一次适配平板
参考链接 在Android3.0之前,声明平板电脑的正确方式是将它们放在有 xlarge 配置限定符的目录(例如 res/layout-xlarge/)中,在Android3.2引入了为更具体的屏幕尺寸指定资源的新方式。新技术基于布局需要的空间量 (例如 600dp 宽)。 意思是告诉我们,使用这种方式,xml里面的长度应该设置成dp单位。 意思是告诉我们,计算布局可用空间时应该把系...原创 2018-08-17 19:20:50 · 338 阅读 · 0 评论 -
Android Studio在gradle:3.1.1版本下使用JNI
一 创建JNI方法public class JniUtils { static { //生成的SO文件名 System.loadLibrary("JNISample"); } public native String getJniString();}二 创建JNI目录在main下面创建jni目录 三 生成.h头文件...原创 2018-09-05 22:06:42 · 627 阅读 · 0 评论 -
Activity匹配原则
action一个过滤规则可以有多个action,那么只要Intent中的action能够和过滤规则中的任何一个action相同即可匹配成功。action匹配要求Intent中action存在且必须和过滤规则中的其中一个action相同categorylntent中如果出现了category。不管有几个category,对于每个category来说,它必须是过滤规则中已经定义了的catego...原创 2018-11-06 18:19:39 · 365 阅读 · 0 评论 -
Android获取媒体文件
这里主要是获取mp3、mp4、jpg、jpeg等等public static List<FileInfo> getSpecificTypeFiles(Context context, String[] extension){ List<FileInfo> fileInfoList = new ArrayList<FileInfo>();...原创 2018-08-13 18:40:27 · 1893 阅读 · 0 评论 -
记录DataBinding使用
例一MainActivitypublic class MainActivity extends AppCompatActivity { private ActivityMainBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super....原创 2018-08-15 10:33:39 · 145 阅读 · 0 评论 -
关于Activity启动,总有些东西你可能不清楚(二)
如果你喜欢分享,一起加入群:524727903更新了图片2017.10.22 FLAG_ACTIVITY_CLEAR_TOP现不妨说一下结论例如A启动B 1. FLAG_ACTIVITY_CLEAR_TOP和Intent.FLAG_ACTIVITY_SINGLE_TOP配合使用相当于B在manifest文件中设置singTask,==会==回调onNewIntent(); 2. FLAG_原创 2017-04-04 21:34:16 · 232 阅读 · 0 评论 -
使用dex2jar和jd-gui反编译APK查看源码
Android使用dex2jar和jd-gui反编译APK查看源码原创 2017-11-19 00:01:14 · 1417 阅读 · 0 评论 -
Serializable与Parcelable实现序列化
Serializable与Parcelable实现序列化原创 2018-01-01 10:58:05 · 313 阅读 · 0 评论 -
Android进程通讯——AIDL
本文参照《Android开发艺术探索》以及官方文档写的读书笔记,欢迎讨论,请勿转载。 在《Android开发艺术探索》这么书中使用跨进程通讯的两个场景: 1、通过多进程来获取多分内存空间 2、当前应用需要向其他应用获取数据跨进程对我的理解就像请求网络调用接口似的,声明一个接口去在客户端调用,只不过调用的时候当前线程阻塞了,通过序列化的方式将用户自定义的对象(实现了Parcelable接口原创 2018-01-02 23:51:46 · 566 阅读 · 0 评论 -
记录OkHttp上传文件
理解文件上传我觉得还是需要一些JavaWeb方面的知识,比如什么是表单了,等等 博主先用现学了下,理解也不咋透彻,所以先记录下,有不对的欢迎指正。 先上一下文件上传的代码,代码参考地址 客户端Android代码:okHttpClient = build(); MultipartBody.Builder builder = new MultipartBody.Builder...原创 2018-06-12 15:33:05 · 3986 阅读 · 0 评论 -
多指触摸,获得移动距离方案
在onTouch的MOVE事件里面获取移动距离dx、dy是很常见的操作,但是需要考虑多指触摸情况。 当第一个手指y在屏幕上滑动时,然后手指z、手指q又放在屏幕上滑动。滑动到最后只剩一个手指(手指x)在屏幕时(无法保证手指x是当初第一个手指y),就需要使用event.getX(index)方法获得坐标点了。public class MainActivity extends AppCompatA...原创 2018-06-05 18:03:07 · 1513 阅读 · 0 评论 -
MAC、ADB、Linux常用命令
复制整个目录:cp -R /update/ /sdcard 未完待续原创 2018-06-07 14:40:53 · 790 阅读 · 0 评论 -
Google两步验证
HOTP:计数器验证TOTP:时间戳验证算法公式HS = HMAC-SHA-1(K,C) DT(HS)//相当于算法分析2-5步 K:秘钥,客户端和服务端都知道,其他第三方不知道 C:在HOTP里面属于计数器 在TOTP里面属于时间戳算法分析通过K和C生成一个容量为20的byte数组,byte[] a;取最后数组a的最后一位,和0xF相余,也就...原创 2018-06-26 14:04:20 · 5108 阅读 · 0 评论 -
关于屏幕旋转重新创建Activity
屏幕旋转Activity会重新创建 可以调用onSaveInstanceState方法进行保存一些信息,在onRestoreInstanceState方法中得到上次保存的信息。 今天要说的是onRetainCustomNonConfigurationInstance和getLastNonConfigurationInstance方法。onRetainCustomNonConfigurati...原创 2018-07-09 18:27:27 · 460 阅读 · 0 评论 -
Android setDescendantFocusability
这个方法一般用在ViewGroup上面,主要是拦截焦点,是自己消费还是交给子View消费; 一共传入三个常量 常量 值 解释 FOCUS_AFTER_DESCENDANTS 1 如果子View都不想要焦点,就交给ViewGroup处理 FOCUS_BEFORE_DESCENDANTS 0 ViewGroup自身先处理焦点 FOCUS_...原创 2018-07-11 15:48:06 · 1106 阅读 · 0 评论 -
Android ListView长按弹出对话框
ListView长按弹出对话框可以用PopupWindow实现 今天记录的是重写onCreateContextMenu和onContextItemSelected实现弹出对话框,比前者简单很多上图 1 . 绑定ListViewregisterForContextMenu(mUserList);2 . 在onCreateContextMenu里面添加标题和Item@Over...原创 2018-07-05 14:20:51 · 3462 阅读 · 0 评论 -
ViewPager 不同Fragment界面显示ToolBar和图片
大致是这样的 整体是ViewPager,左边是ToolBar有面试图片 Activity:public class SecondActivity extends AppCompatActivity { private ViewPager vp; private ArrayList<Fragment> fragmentList; @Overri...原创 2018-07-07 23:10:01 · 1341 阅读 · 0 评论 -
Scroller用法
public class StudyScroller extends LinearLayout{ private Scroller mScroller; public StudyScroller(Context context) { super(context); init(); } public StudyScroller(C...原创 2018-07-14 20:52:12 · 461 阅读 · 0 评论 -
数据库框架学习
/** * 抽象接口,定义增删改查等操作 * @param <T> */public interface IBaseDao<T> { Long inserrt(T entity); int update(T entity, T where);}/** * 用于通过对象的字段获取对应数据库的字段名称 */@Target(Ele...原创 2018-08-12 17:08:12 · 351 阅读 · 0 评论 -
关于Activity启动,总有些东西你可能不清楚(一)
如果你喜欢分享,一起加入群:524727903更新了图片2017.10.22FLAG_ACTIVITY_NEW_TASK首先感觉第一个坑就是这个参数,当我们用ApplicationContext去启动一个Activity的时候,总会报错,解决的方法就是在Intent里面添加flag属性FLAG_ACTIVITY_NEW_TASK,问题才迎刃而解。 在Android的API文档说: FLAG_A原创 2017-04-04 17:22:09 · 292 阅读 · 0 评论