自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (3)
  • 收藏
  • 关注

原创 糖尿病遗传风险检测挑战赛-权重融合

我用的是lightgbm,xgboost,CatBoostRegressor,这三个模型融合的,融合方式用的是LogisticRegression,但是结果比之前差。权重融合,我只是接触力一点,正在深入了解。基于上一篇,调参之后的进行权重融合。把预测结果写入到文件中提交。............

2022-08-03 22:40:29 320 1

原创 糖尿病遗传风险检测挑战赛

RangeIndex: 5070 entries, 0 to 5069Data columns (total 10 columns):0 编号 5070 non-null int641 性别 5070 non-null int642 出生年份 5070 non-null int643 体重指数 5070 non-null floa

2022-07-10 18:52:36 732 1

原创 Ubuntu20.4 Android-9.0.0_r46源码下载编译

Ubuntu20.4 Android-9.0.0_r46源码下载编译调试安装Ubuntu虚拟机ubuntu镜像下载地址: https://ubuntu.com/download官网下载地址较慢可以去 清华源,中科大源,华为,阿里源直接下载都可以我是VM虚拟机安装,预留空间300G,4核,8G内存,正常安装虚拟机就行配置ubuntu虚拟机环境设置root账户 密码sudo passwd root安装vim,方便修改后面文件sudo apt-get install vim更换ubun

2022-05-30 11:24:55 892

原创 LeakCanary 原理分析

LeakCanary 原理分析LeakCanary的初始化LeakCanary2.3的引入: debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.3'2.3版本无需在Application中做额外操作。深入了解一下具体是如何初始化的,我的是2.3版本的,2.0以下版本应该和这个不一样:https://github.com/square/leakcanary/blob/main/leakcanary-objec

2020-09-20 10:53:16 202

原创 EventBus的一些分析

EventBus使用implementation 'org.greenrobot:eventbus:3.1.1'在接收消息的地方注册该类: EventBus.getDefault().register(this);定义发送事件的类:相当于要发送的消息内容 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventLoginBindState(final LoginBindStateEvent event)

2020-09-20 10:51:32 126

原创 Android 桌面应用启动APP的流程

桌面应用启动APP的流程一:概图具体代码分析zygote进程fork一个进程后调用ActivityThread的systemMain方法,也就是上图中的步骤3:ActivityThread 相关代码,systemMain是app真正的入口方法: public static ActivityThread systemMain() { // The system process on low-memory devices do not get to use hardware

2020-09-20 10:48:23 642

原创 排序专项训练

排序专项训练排序算法概括:排序算法:算发复杂度:冒泡 /*** * 冒泡排序 时间复杂度o(n的平方) 空间复杂度 * @param num * @return */ public int[] bubbleSort(int[] num) { if (num == null || num.length < 2) { return num; } int length

2020-09-20 10:45:11 184

原创 查询算法

查询算法顺序查询顺序查询可以是有序也可以是无序二分查询二分查询必须是有序 /*** *时间复杂度最好o(logn),最差o(log(n+1)) * 空间复杂度 o(1) * @return */ public int binearySearch(int[] num, int val) { int low = 0; int hight = num.length - 1; while (low &l

2020-09-20 10:42:50 95

原创 kotlin - Coroutine 协程

#kotlin - Coroutine 协程协程的创建kotlin 里没有 new ,自然也不像 JAVA 一样 new Thread,另外 kotlin 里面提供了大量的高阶函数,所以不难猜出协程这里 kotlin 也是有提供专用函数的。kotlin 中 GlobalScope 类提供了几个携程构造函数:1.launch - 创建协程2.async - 创建带返回值的协程,返回的是 Deferred 类3.withContext - 不创建新的协程,在指定协程上运行代码块4.runBlocki

2020-09-20 10:39:33 125

原创 kotlin的基础知识

kotlinkotlin变量声明val 与varval 定义不可更改的属性 类似于Java的final修饰过的字段var 定义可变的的属性完整的定义:var <propertyName>[: <PropertyType>] [= <property_initializer>][<getter>][<setter>]var vertexCount: Int set(value) { vertexCount

2020-09-20 10:38:26 237

原创 内部类隐式持有外部类

内部类隐式持有外部类源码package com.example.testdemo;public class OutClass { int out =2; public class InnerClass{ int in=1; }}编译成.class文件,有两个文件内部类InnerClass//// Source code recreated from a .class file by IntelliJ IDEA// (powered by F

2020-09-20 10:35:21 191

原创 Git合并单个commit或者一系列commit以及合并其中一个分支的其中部分代码的操作

Git合并单个commit或者一系列commit以及合并其中一个分支的其中部分代码的操作经常被问到如何从一个分支合并特定的文件到另一个分支。其实,只合并你需要的那些commits,不需要的commits就不合并进去了。合并某个分支上的单个commit首先,用git log或sourcetree工具查看一下你想选择哪些commits进行合并,例如:比如feature 分支上的co...

2019-12-31 14:29:16 1656

原创 java的注解

java的注解为什么使用注解1.注解,统一代码风格,易于理解框架类代码2.编程简洁,代码清晰3.跟踪代码依赖性,实现替代配置文件功能4.输出编码文档java的注解的使用jdk自带的注解一个是@Override:只能用在方法之上的,用来告诉别人这一个方法是改写父类的。 一个是@Deprecated:建议别人不要使用旧的API的时候用的,编译的时候会产生警告信息,可以设定在程序里...

2019-07-31 22:12:37 115

原创 Gradle系列之一

Gradle好多Android开发人员对gradle既熟悉又陌生,经常在用,但是用的又不是那么熟悉,在遇到编译异常的时候就束手无策了,只能google了,都停留在简单的使用,对于一个项目中依赖诸多个lib,对一些使用的第三方的框架以及gradle的编译插件,Android最小本版本的控制,以及大的日志上报茶插装埋点,热修复动态编译度需要gradle处理的,所以需要对gradle有一定的了解和使用...

2019-07-28 19:31:53 318

原创 Glide的简单梳理

#GlideGlide的使用 implementation 'com.github.bumptech.glide:glide:4.8.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'简单的使用RequestOptions options =new RequestOptions().center...

2019-07-28 17:24:38 269

原创 Retrifit简单的梳理

这里写自定义目# RetrofitRetrofit的 一次网络请求流程,以及API接口中的参数是如何获取的欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图...

2019-07-28 17:22:44 601

原创 插件化开发整体流程

四大组件(Activity)1.将宿主APk的dex和插件APK的dex数组合并2.将启动的Activity(Intent) 替换成占坑的Activity,绕过检测。反射获取AMS的代理的startActivity方法3.将占坑的Activity替换成目标Activity,通过Handler的CallBack,在ActivityThread里面的发送消息的Handler没有设置Call

2018-01-16 20:01:51 586

原创 Android 插件化开发<一>

Android 插件化开发有两方面,一是代码的加载,二是资源的加载。基于上一篇Android activity的启动方式先对代码的加载说一下,下一篇说一下资源的的加载。插件化:将一个未安装的apk下载到本地,在未安装的情况下,宿主app可以打开apk 的activity,严格的插件化和组件化需要大家百度科普一下。上一篇中提到最后是调用ActivityThread的中的performLaun

2018-01-16 15:37:12 294

原创 Android Activity的启动

Android 应用程序启动,正常都是从Launcher里面点击应用图标,Luncher响应点击效果,开启对应的应用程序。Luncher本身就是一个应用程序,只是Android系统在启动后自动开启的一个应用程序。Activity的启动包括MainActivy和普通的activity,我们先大概的了解启动的流程后,再查看源码,这样了解的比较清晰,容易掌握。 分一下几个步骤: (1)Launche

2018-01-12 19:38:50 1895 1

原创 字符串替换空格

题目:实现一个函数,把字符串中的每一个空格替换为“%20”。public class ReplaceBlack { public static void main(String[] args) { char[] result = replaceBlack("how are you!"); if (result != null) { pri

2017-09-04 16:21:03 324

原创 二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到有递增的顺序排序,每一列都是从上往下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。当我拿到这个题的时候,第一反应是循环,挨个判断不就可以了,看了后面的解析才知道,看来是我太low了。 看看正确的吧,逐步缩小查找范围:public class TwoDimArry { public static void m

2017-09-04 15:51:24 239

原创 Java单链表的反转

前段时间有同事面试,给面试的人都提一个算法问题那就是单链表的反转,好多小伙伴都不会,或者表示一听算法就懵逼了,自己写了一个。就是5-4-6-8-9-1-2-7,反转输出7-2-1-9-8-6-4-5,我自己写的反转有两种方式。一种是递归,一种是遍历,也是很普通的两种方式。 <一>递归的方式 先看图 先解释一下一个Node有data和next,data是数据,next是指向下一个节点,相当于C中

2017-08-13 13:11:46 352

原创 Retrofit对接口加解密

前两天因为短信验证码接口被人恶意调用,狂刷验证码账户里的钱,所以做了一次数据加密。网络请求使用的是Retrofit,解析工厂用的是GsonConverterFactory,依赖的是 compile 'com.squareup.retrofit2:converter-gson:2.1.0'<一>解密部分本来是打算加密整个messagebody的就是直接过来的消息体就是整个未解析的json串来加密的,

2017-08-13 10:16:18 1681

原创 Git配置多账号

最近需要总结整理一下项目,之前一直用的是github,后来公司搭建了gitlab自己的代码库,自己整理总结的东西要放到github上去,需要不同的账号来切换。 添加多账号处理: 1:查看C:\Users\Administrator.ssh目录下有没有comfig文件,我的是这个目录,大家按照自己的来。如果没有自己新建一个,通过gitblash,打开.ssh目录创建该文件,windows也可以直接

2017-06-27 16:51:31 559

原创 Android 自定义view<一>

前言: Android开发与进阶的第一个门槛就是自定义view,大多数的设计不会按照Android所具有的优势和特性去设计,而是一味跟随IOS的设计风格去走,当然IOS的的设计相当漂亮,系统也提供了许多优秀的控件给开发者使用,这也符合苹果的始终所坚持的标准化与统一化。但是要把这些控件所带有的效果同样,甚至功能实现在Android上,是有许多不尽如人意的地方,有许多是Android所不擅长的,还有一

2017-04-01 11:57:32 498

原创 Android 内存溢出与内存泄漏的简单分析与解决

内存溢出与内存泄露首先我们要知道内存溢出与内存泄露的概念,什么是内存溢出和内存泄露。 内存溢出:就想杯子里得水满了,就溢出了。内存溢出就是分配的内存被用光了,不够用了。 内存泄露:就如同杯子里面有石子,导致杯子里面的一部分空间没有被利用,在APP中内存泄露就是指该被回收的内存没有被回收,导致一部分内存一直被占着,可利用内存变少了。当泄露过多 时,可利用的内存越来越少,就会引起内存

2017-03-16 10:16:54 11841

原创 Nexus搭建Maven私服上传与下载项目

为啥要搭建Maven私服呢,因为有时候公司不便将一些内部封装好的jar或者aar的架包放到外网上,或者当项目大一点的时候需要将一些业务封装成一个模块,来使用就需要本地私服了。 一 Nexus的搭建1:首先得安装Java的jdk; 2:下载Nexus:https://support.sonatype.com/hc/en-us/articles/218637467-Download-Nexus-Re

2017-02-20 23:55:18 681

原创 Android事件分发<二>

上一节简单的介绍了Androd事件分发的流程,这一小节介绍一下之前的那三个方法的作用。 dispatchTouchEvent: 这个方法作用它的命名一样disspathTouchEvent,事件分发。 onInterceptTouchEvent: Intercept,”拦截”的意思,即事件拦截,当我们操作该方法可以决定是否将事件继续往下传递,当它的返回值为true时,就可以

2016-11-07 14:43:22 325

原创 Android事件分发<一>

Android事件分发一直是硬伤,项目中不断出现各种View滑动冲突所以想研究一下彻底的了解android事件分发。 先来了解一下事件的分发主要有以下几个方法:public boolean dispatchTouchEvent(MotionEvent ev)public boolean onTouchEvent(MotionEvent event) public boolean onInter

2016-10-30 22:17:57 339

原创 Crashlytics工具的接入

最近应公司上级的指示,要接入Crashlytics来进行bug统计工具。根据官网的指示安装出现了好多坑,费了点劲接入了,但是本人感觉没有啥卵用。。。具体的看下面这篇文章的介绍[移动平台奔溃收集]。(http://blog.csdn.net/zhuobattle/article/details/50848745?locationNum=13) 我的开发工具是AndroidStuidio,Eclips

2016-09-18 16:17:51 4649

原创 RecyclerView 上拉加载更多以及下拉刷新

RecyclerView 已经出来很久了,但是在项目中之前都使用的是ListView,最近新的项目上了都大量的使用了RecycleView.尤其是瀑布流的下拉刷新,网上吧啦吧啦没有合适的自己总结了一哈。 先贴图上来看看: 使用RecyclerView实现上拉加载更多和下拉刷新的功能我自己有两种方式: 1.使用系统自带的Android.support.v4.widget.SwipeRefre

2016-09-16 12:50:57 4272 1

原创 自定义ViewPager Indicator

先上效果图: 上面的指示器ViewPager Indicator是继承自LinearLayout,随着手指的滑动不断的向前滚动,指示器滚动到对应的标签并且文字出现高亮,指示器上的小三角型,也随之滚动。 下面是布局代码`<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android

2016-05-23 23:17:19 663

原创 AIDL

前一段时间学习了一哈AIDL今天复习的时候把他发出来 AIDL: Android Interface definition language的缩写,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口。 提到AIDL就必须提到ICP。ICP:interprocess communication :内部进程通信 今天用AndroidStud

2016-05-13 18:52:11 570

原创 Android多线程下载断点续传

先上图看卡结果: GITHUB:Android多线程下载断点续传 下载杵这儿 如图所示点击下载就开始下载,点击停止就会停止再次点击下载就会接着下载了。 设计思路是这样的: 首先通过广播将下载信息传递给DownService,DownService根据文件URL获取文件大小,再通过DownTask将下载任务分配,并且通过广播当点击停止下载时将下载进度保存在数据库中,当点击开始下载

2016-05-13 12:28:26 5289 1

原创 Android分析主线程与子线程,以及子线程之间相互通信

通过查源码来不断的学习Android的消息发送机制,一直在使用但对此具体如何实现的从未探索过,希望通过这段时间的不断学习更加深入了解。

2015-08-04 09:57:18 4619

原创 理解Volley专题<一>

理解Volley专题第一次写博客,心情有点小激动啊 !由于最近项目遇到了Volley这个东东,之前木咋使用过,为了详细的了解Volley我就一边学习一边和大家共同研究。Volley的基本用法在里就不再介绍了,我们就直接上他的源码来看看。我觉得学习不应该只学会基本的用法,要深入得了解,学习他人优秀的编码习惯,和编码思想是很重要的。思想是灵魂,尤其重要。先看看Volley的整体框架:

2014-09-16 00:00:47 542

自定义ViewPageIndicator

滑动屏幕实现指示器只是效果

2016-05-23

AIDL进程间通信

通过AIDL 实现Client求1+2的和,服务端实现具体的做法,并通过Ibinder来获取服务端的ADIL对象来操作。

2016-05-13

Android多线程下载断点续传

Android多线程下载断点续传, 详情移步:http://blog.csdn.net/u014674558/article/details/51394290

2016-05-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除