android
刘_海洋
这个作者很懒,什么都没留下…
展开
-
StatusBarUtil
可实现图片进入状态栏,指定view不进入状态栏StatusBarUtil.setTranslucentForImageView(Activity.this, 1, null);布局进入状态栏,并且进入导航栏StatusBarUtil.setTransparent(Activity.this);设置状态栏的字体样式,背景颜色StatusBarUtil.setColor(MainActivity.this, CommonUtils.getColor(R.color.textc.原创 2022-02-16 16:15:00 · 1500 阅读 · 0 评论 -
JetPack
原创 2021-09-29 10:40:13 · 204 阅读 · 0 评论 -
MVVM,MVP
MVVM模式是指 Model-View-ViewModelMVVM由下面三个核心组件组成:Model: 数据层,包含数据实体和对数据实体的操作 View: 界面层,对应于Activity,XML,View,负责数据显示以及用户交互 ViewModel: 关联层,将Model和View进行绑定,Model或者View更改时,实时刷新对方,DataBinding...原创 2021-09-29 10:38:45 · 146 阅读 · 0 评论 -
生成快捷方式
android o以上开始需要权限,特别是国内厂商对权限进一步处理,必须手动到对应快捷方式权限开启权限 public void addShortCutCompact(Context context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { ShortcutManager scm = (ShortcutManager) getSystemService(SHORTCUT_SERVIC原创 2021-06-29 16:03:29 · 219 阅读 · 0 评论 -
android性能优化profiler的使用
运行profile(就像run 应用那样,点击图标跑起来)然后跑起来之后会出一个性能图选择自己需要观察的cpu或者memory或者network点击滚动线进入对应的详情界面选择对应的Sample Java Methods或 Trace Java Methods点击旁边按钮***Record***stop后课可以分析下面的...原创 2021-03-15 16:00:25 · 149 阅读 · 0 评论 -
android 学习的体系结构
原创 2021-02-02 15:23:24 · 110 阅读 · 0 评论 -
android studio单元测试和自动化
android { compileSdkVersion 28 defaultConfig { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }// Required -- JUnit 4 frameworktestImplementation '...原创 2020-03-02 15:53:55 · 789 阅读 · 0 评论 -
android的分包方式
1,按照项目模块分包 a, 新闻资讯 b,视频直播 c,IM聊天 d,账户中心2,按照功能分包├ cn.eoe.app --存放程序全局性类的包 ├ cn.eoe.app.adapter --存放适配器的实现类的包 ├ cn.eoe.app.ad原创 2018-07-03 15:22:20 · 449 阅读 · 0 评论 -
状态栏相关android
// 状态栏透明,内容进入状态栏,此时可以使用fitsSystemWindows原理是给rootView设置一个padding,恢复内容不进入状态栏,还有输入法顶起失效的问题可借鉴小财迷产品详情页<item name="android:windowTranslucentStatus">true</item>//虚拟按键栏透明,内容进入虚拟按键栏...原创 2018-07-03 15:21:51 · 342 阅读 · 0 评论 -
android- cpu架构以及区别
CPU:MIPS、ARM、X86三大架构armeabi系列:属于ARM (A7、A9、A15、A53、A57) 包含:高通、麒麟(华为海思)、澎湃(小米)、联发科、猎户座(三星Exynos)mips系列:属于MIPS ,多用在网关、猫、机顶盒等。代表:中国“龙芯”x86系列:pc模拟器、Intel Atom系列处理器(英特尔放弃应用于手机、PC、平板以及可穿戴设备的Atom处理器)...原创 2018-03-29 16:44:57 · 931 阅读 · 0 评论 -
activity总结
主题样式主题Theme就是用来设置界面UI风格,可以设置整个应用或者某个活动Activity的界面风格。在Android SDK中内置了下面的Theme,可以按标题栏Title Bar和状态栏Status Bar是否可见来分类:activity的声明周期,在activity内弹出dialog和切换fragment,此时activty的生命周期不会变化;Activ...原创 2018-01-25 09:36:32 · 515 阅读 · 0 评论 -
自定义view
自定义view方法执行顺序 03-18 11:32:30.198 14844-14844/? I/tag: ---- public CoustomView(Context context, AttributeSet attrs) ---- 03-18 11:32:30.198 14844-14844/? I/tag: ---- onFinishInflate() ---- ...原创 2017-03-31 18:00:14 · 469 阅读 · 0 评论 -
事件处理机制-自定义view
ViewPager,ScrollView 嵌套ViewPager滑动冲突解决 这个图基本上表示出了事件处理机制,activity一般不去做处理(此图没有表示出来的就是可能出现多个ViewGroup层)。1,主要在ViewGroup的onInterceptTouchEvent方法的拦击做处理,是否拦击自己消费true去onTouchEvent处理,2,在View和ViewGrou...原创 2017-06-12 15:28:12 · 531 阅读 · 1 评论 -
android打包流程,启动Activity的方式总结,acitivty布局加载
v1签名是对jar进行签名,V2签名是对整个apk签名:官方介绍就是:v2签名是在整个APK文件的二进制内容上计算和验证的,v1是在归档文件中解压缩文件内容。打包流程概述:1、打包资源文件,生成R.java文件2、处理aidl文件,生成相应java 文件3、编译工程源代码,生成相应class 文件4、转换所有class文件,生成classes.dex文件5、...原创 2017-06-05 13:46:03 · 500 阅读 · 0 评论 -
Android Activity 、 Window 、 View之间的关系
一、简述如何将Activity展现在手机上Tips:Activity本身是没办法处理显示什么控件(view)的,是通过PhoneWindow进行显示的换句话说:activity就是在造PhoneWindow,显示的那些view都交给了PhoneWindow处理显示1、在Activity创建时调用attach方法:2、attach方法中会调用PolicyMan原创 2017-09-26 15:54:04 · 3821 阅读 · 0 评论 -
android性能优化
2、优化 http://www.jianshu.com/p/f7006ab64da7 内存优化开发开始选取比较优秀的第三方框架,使用leakcanary检测内存泄露,使用低配机做开发测试机发现 ANR(卡顿,无响应)的界面,使用简单的树形结构布局,OOM(数据库,文件流游标对象的关闭,适配器中的convertView的复用、 图片的缓存内存缓存LruCache内...原创 2017-10-10 16:21:15 · 215 阅读 · 0 评论 -
屏幕适配,rom适配和版本适配
1,不同android api版本的兼容2,不同厂商定制系统的兼容3,不同尺寸分辨率的兼容4,不同cpu框架的兼容5.网络的制式6.语言国家7.硬件设备8.运行商1、屏幕适配。(网上讲的最多的就是这个。) 由于Android碎片化严重,导致开发中一套代码在不同手机上运行起来效果不是很好,兼容性不是很好,这就需要对不同分辨率,不原创 2017-10-19 09:53:00 · 3809 阅读 · 1 评论 -
屏幕适配android
Android系统如何在多个资源文件夹下查找匹配最合适的资源:查找的原则是先找限定符目录下的资源,找不到就就近向上找,一直找不到在回来向下找,比如xhdpi的需求先找xhdpi文件资源,找不到就到xxhdpi找,找不到再到xxxhdpi找,找不到再到hdpi,找不到再到mdpi需求xhdpi资源, xhdpi--->xxhdpi--->xxxhdpi---->hdpi---&...原创 2017-02-28 15:33:17 · 329 阅读 · 0 评论 -
rxjava的探索,rxjava2
rxjava2如果生产者的速度大于消费者的速度,就会产生Backpressure问题。即异步情况下,Backpressure问题才会存在。由于上游通过Observable发射数据的速度大于下游通过Consumer接收处理数据的速度,而且上下游分别运行在不同的线程中,下游对数据的接收处理不会堵塞上游对数据的发射,造成上游数据积压,内存不断增加,最后便会导致内存溢出。Observab...原创 2017-03-23 10:43:39 · 337 阅读 · 0 评论 -
SurfaceView
View 主要适用于主动更新的情况,而 surfaceView 主要适用于被动更新,例如频繁的刷新。View 在主线程中对画面进行刷新,而 surfaceView 通常会通过一个子线程来进行页面的刷新View 在绘图时没有使用双缓冲机制,而 surfaceView 在底层实现机制上就已经实现了双缓冲机制。 总结就是,如果你的自定义 View 需要频繁刷新,或者刷新时数据处理量很大,考虑用 S...原创 2018-12-14 17:04:59 · 469 阅读 · 0 评论 -
进程保活,service保活
一、onStartCommand方法,返回START_STICKY START_STICKY 在运行onStartCommand后service进程被kill后,那将保留在开始状态,但是不保留那些传入的intent。不久后service就会再次尝试重新创建,因为保留在开始状态,在创建 service后将保证调用onstartCommand。如果没有传递任何开始命令给service,那...原创 2018-12-28 12:33:17 · 525 阅读 · 0 评论 -
2019总结 2020
逆向游戏文件,切换游戏的sdk,包括登录,支付功能,悬浮窗个人信息,客服,资讯apk文件逆向,回编,修改smail文件,对功能布局的逆向修改,模板更换,签名1、首先在公司开发了一套自动化脚本,实现游戏包切换sdk的功能,耗时4天,为工作中游戏包切换sdk或者升级sdk有很好的帮助,使繁重的资源整合简单化。2、开发金猪app;金猪app一个从无到有的过程,开发框架...原创 2020-01-02 11:34:00 · 1257 阅读 · 0 评论 -
sdk开发
1:SDK的最小版本如果集成该SDK的工程设置的最小版本大,导入以后编译失败,所以SDK的minSdkVersion 一定要尽量小2:SDK中是否需要用到6.0以后动态申请权限的问题以集成SDK的工程的targetVersion版本为准,minSdkVersion 越小越好,targetVersion 越大越好3:尽量不要使用静态注册广播,因为有时候使用者集成以后可能不会使用,这样SDK没...原创 2019-08-22 10:47:45 · 785 阅读 · 0 评论 -
https抓包
fiddler Android下https抓包全攻略 fiddler的http、https的抓包功能非常强大,可非常便捷得对包进行断点跟踪和回放,但是普通的配置对于像招商银行、支付宝、陌陌这样的APP是抓不到包的,需要一些特殊的配置,本文把fiddler Android下https抓包的详细配置都罗列出来,供大家参考。一、普通https抓包设置先对Fiddler进行设置:...原创 2019-04-30 14:49:11 · 15115 阅读 · 1 评论 -
android依赖冲突
依赖冲突主要是项目引用依赖同一功能的不同版本:比如引用了 v7:25.3.1 又引用v4:28.0.0因为v7包里包含v4:25.3.1,所以就会出现依赖冲突,同一功能相同的版本没问题,同一功能的不同版本就会有问题gradlew app:dependencies android studio命令分析架包冲突查看依赖情况...原创 2019-04-30 10:04:49 · 828 阅读 · 0 评论 -
android发展计划,技术栈
1,java后台方向 Spring mvc,Spring boot框架,mysql数据库2,前端方向 H5开发,HBuilderX和weex混合式开发,vue,jq,BootStrap,Angular3,新语言 小程序,RN,Flutter,kotlin,hybrid,swift4,android方面 音视频...原创 2019-03-29 11:27:02 · 1220 阅读 · 0 评论 -
dialog
dialog生命周期调用show() show --onCreat--onStart 调用cancel() 执行cancel--onStop--dismiss--调用dismiss() 执行onStop--dismiss--activity的声明周期,在activity内弹出dialog和切换fragme...原创 2019-04-05 17:40:28 · 712 阅读 · 0 评论 -
android逆向,反编译,加壳
1,android逆向你要懂,apktool可以配置到系统变量path上,可全局使用,也可以在文件内使用apktool工具进行反编译,apktool d -f d:\test.apk -o d:\test然后反编译得到的是这些文件都能进行修改, smali文件就是和java文件对应的;删除original签名,删除res里values的public.xml文件,该文件...原创 2019-03-11 23:04:04 · 1006 阅读 · 0 评论 -
android中将aar差分成jar和资源文件的办法
1,首先解压aar文件,得到相应的资源文件、清单文件、jar文件2,将资源文件放到自己的项目中,注意values中的要合并,不能覆盖自己的文件3,使用jd-gui打开jar,保存想要修改的java文件,拿到这个文件必须放到个java文件的对应包名里,编译生成class注意有引用资源id的需要改为这样的使用方法 Resources resources = this.g...原创 2019-03-15 21:37:43 · 941 阅读 · 0 评论 -
文件,文件夹的使用和权限
Android下有哪些文件目录在Android系统中,根据调用的系统API接口,有3种目录可以给我们写入文件:1.应用私有存储(内置存储) 获取方式: Context.getFileDir():获取内置存储下的文件目录,可以用来保存不能公开给其他应用的一些敏感数据如用户个人信息 Context.getCacheDir():获取内置存储下的缓存目录,可以用来保存一些缓存...原创 2019-03-07 14:59:07 · 304 阅读 · 0 评论 -
圆角图片的实现方式
方法一:setXfermode法此种方式就是再new一个相同尺寸的bitmap,然后使用paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));先画圆角矩形,再画原始bitmap,然后就得到了一个圆角的bitmap了。public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, ...原创 2019-02-23 09:52:05 · 1150 阅读 · 0 评论 -
渲染机制,绘制--android
我们要知道Android系统每隔16ms就重新绘制一次Activity,也就是说,我们的应用必须在16ms内完成屏幕刷新的全部逻辑操作,即每一帧只能停留16ms,不然用户感觉卡顿。CPU与GPU。CPU负责包括Measure,Layout,Record,Execute的计算操作,GPU 负责Rasterization(栅格化)操作。栅格化就是解决那些复杂的XML布局文件和标记语言,使之转化成用...原创 2019-01-03 17:25:32 · 311 阅读 · 0 评论 -
内存优化,性能优化
内存溢出1,大量使用静态变量2,大量的递归或无限递归(递归中用到了大量的建新的对象)3,大量循环或死循环(循环中用到了大量的新建的对象)4,检查App中是否使用了向数据库查询所有记录的方法。即一次性全部查询的方法,如果数据量超过10万多条了,就可能会造成内存溢出。所以在查询时应采用“分页查询”。5,检查是否有数组,List,Map中存放的是对象的引用而不是对象,因为这些引用会让...原创 2018-12-29 14:12:50 · 326 阅读 · 0 评论 -
Dalvik,JVM,ART的区别以及原理总结
什么是Dalvik?Dalvik是Google公司自己设计用于Android平台的虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为** .dex格式**的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟...原创 2018-12-28 16:56:45 · 282 阅读 · 0 评论 -
webview总结
webview中JS与Native交互实践Android调用JSWebView调用JS有以下两种方式:通过WebView.loadUrl()通过WebView.evaluateJavascript()在API 19之前是只能通过WebView.loadUrl()进行调用JavaScript。在API 19的时候新提供了WebView.ev原创 2018-01-03 16:34:17 · 419 阅读 · 0 评论 -
android网络框架及网络的优化
1、网络通讯 http(比如okhttp框架) httpUrlConnection安卓的基础网络(volley框架) httpClient也是安卓的基础网络但是已经不推荐使用新的api不支持了(android-async-http框架) socket一般使用框架AndroidAsync...原创 2017-08-03 11:46:38 · 523 阅读 · 0 评论 -
android界面监控,防劫持
1,首先要对自己应用的activity建立一个白名单2,权限 <uses-permissionandroid:name="android.permission.GET_TASKS"/>3,import android.app.Activity;import android.app.ActivityManager;import android.app.Applicatio原创 2017-08-01 15:58:21 · 714 阅读 · 0 评论 -
序列化
Java应用程序中有Serializable来实现序列化操作,Android中有Parcelable来实现序列化操作,因此在Android中除了对数据持久化的时候需要使用到Serializable来实现序列化操作,其他的时候我们仍然需要使用Parcelable来实现序列化操作,通过比较Parcelable在效率和内存上都要优秀与Serializable,区别原创 2017-09-27 11:28:13 · 176 阅读 · 0 评论 -
activity切换动画 Shared Element效果
//第一个参数是,代表 即将进来的activity的动画 第二个参数是,是当前activity消失时的动画。overridePendingTransition(R.anim.enter_anim,R.anim.exit_anim);方法在startActivity()或者finish()方法的后面。在onCreate方法里面的最上面...原创 2017-08-30 17:43:48 · 285 阅读 · 0 评论 -
android studio的使用
1, 正常的项目导入2,对于项目配置删除的项目3,在项目上引入第三方代码项目再ctrl+alt+shift+s 项目组织结构4,加入jar包到libs,再如下图5,自动import类6,修改第一次新建生成的app module 选中app Rename或者快捷键 选择Rename module...原创 2017-08-30 13:48:39 · 1252 阅读 · 0 评论