<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[OneLinee的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/OneLinee</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; OneLinee]]></copyright><item><title><![CDATA[探究RecyclerView复用缓存机制]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/109143144</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/109143144</guid><author>OneLinee</author><pubDate>Sun, 18 Oct 2020 14:21:36 +0800</pubDate><description><![CDATA[探究RecyclerView复用缓存机制RecyclerView中onCreateViewHolder与onBindViewHolder执行现象RecyclerView的复用机制及onCreateViewHolder与onBindViewHolder执行时机RecyclerView的回收机制问题结论
RecyclerView中onCreateViewHolder与onBindViewHolder执行现象
首先我们看下出现RecyclerView出现的情况,这里我们将布局管理器设置为GridLayoutMan]]></description><category></category></item><item><title><![CDATA[自定义View的一些注意点]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/108962272</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/108962272</guid><author>OneLinee</author><pubDate>Thu, 08 Oct 2020 15:39:40 +0800</pubDate><description><![CDATA[自定义View的几个注意点View的坐标系自定义View重写OnTouchEvent（MotionEvent event）方法后Android Studio提示重写performClick（方法）Paint关于PorterDuffXfermode的几个问题
View的坐标系

自定义View重写OnTouchEvent（MotionEvent event）方法后Android Studio提示重写performClick（方法）
我们在重写OnTouchEvent（MotionEvent event）方法时]]></description><category></category></item><item><title><![CDATA[ThreadLocal介绍]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/108914366</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/108914366</guid><author>OneLinee</author><pubDate>Sun, 04 Oct 2020 09:33:26 +0800</pubDate><description><![CDATA[ThreadLocal详细介绍ThreadLocal的使用ThreadLcoal实现原理ThreadLocal的内存泄露错误使用ThreadLocal出现 线程不安全的情况ThreadLocal在Android中的使用场景
ThreadLocal和Synchonized都用于解决多线程并发访问，但实现机制却有着本质区别。Synchronized是利用加锁的方式，允许某个代码块只能被一个线程所访问。而ThreadLocal则是通过为每个线程都提供变量的副本，这样每个线程在访问时，实际上访问的是属于自身的变量，]]></description><category></category></item><item><title><![CDATA[JNI简单使用]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/104718002</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/104718002</guid><author>OneLinee</author><pubDate>Sat, 07 Mar 2020 18:15:53 +0800</pubDate><description><![CDATA[JNI(Java Native Interface ),java本地接口,为了方便java代码调用C++/C代码.

Java本身的跨平台特性导致它和本地交互的能力不是特别强,一些和操作系统相关的特性Java没法完成.所以Java就提供了JNI接口历来调用C++/C编写的代码.

下面写一个demo,让大家体会体会(注:我用的是Linux系统):

新建一个文件夹jni2,在这里先写一个Java文...]]></description><category></category></item><item><title><![CDATA[基于Flutter的疫情填表软件]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/104582429</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/104582429</guid><author>OneLinee</author><pubDate>Sat, 29 Feb 2020 21:53:04 +0800</pubDate><description><![CDATA[效果图:








该项目采用Flutter+Bmob,Flutter插件的多样性,搭配Bmob提供的后端数据保存服务,使得整个项目的开发过程十分轻松.
在项目中觉得比较吃力的地方主要在于答题页面和设计题目的页面.
在答题页面,用户提交的选项随着屏幕滑动会清零,当时解决这个问题的第一想法就是有没有类似安卓中ListView的Item复用机制,百度一圈无果,无奈采用了单例模式来保存用户数据,用...]]></description><category></category></item><item><title><![CDATA[高校图书馆座位预约软件简要介绍]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/104581327</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/104581327</guid><author>OneLinee</author><pubDate>Sat, 29 Feb 2020 21:16:43 +0800</pubDate><description><![CDATA[项目效果图展示:




项目源代码(安卓端):https://github.com/QQHEZhangyubin/DESK_MOBILE
项目源代码(服务端):https://github.com/QQHEZhangyubin/desk
该项目采用MVP+RxJava+Retrofit2结构开发.由于项目开发过程中采用的是自己的数据库,没有与图书馆数据对接,为了便于学生使用,选座页面在原来的基础...]]></description><category></category></item><item><title><![CDATA[Linux中配置Flutter环境]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/103949100</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/103949100</guid><author>OneLinee</author><pubDate>Sun, 12 Jan 2020 20:16:51 +0800</pubDate><description><![CDATA[我是在Linux系统下配置Flutter环境的,具体操作步骤如下:

在flutter官网下载Linux 最新版的flutter_sdk,这里我没有下载最新版本的,导致用Android Studio 构建flutter项目时总是出错.下载好之后解压.

终端输入第一个命令: vim ~/.bash_profile

这里说明一点:Unbutu默认没有此文件，可新建,具体Linux有关环境变量的文件...]]></description><category></category></item><item><title><![CDATA[GDB调试NASM语法的汇编代码]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/103916620</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/103916620</guid><author>OneLinee</author><pubDate>Thu, 09 Jan 2020 23:08:48 +0800</pubDate><description><![CDATA[准备调试的nasm版的汇编代码如下:


section .data
section .text
global main
main:
  ;100001/100
 mov rdx,1
 mov rax,86A1H
 mov rbx,100
 div rbx
 mov rax,60
 syscall


有的程序会用'_start'代替'main',但是我用_start字样去测试时,总会出现:


...]]></description><category></category></item><item><title><![CDATA[通过handler类向线程的消息队列发送消息]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/89300632</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/89300632</guid><author>OneLinee</author><pubDate>Sun, 14 Apr 2019 19:45:28 +0800</pubDate><description><![CDATA[/*
*通过handler类向线程的消息队列发送消息，
*每个Handler对象中都有一个Looper对象和MessageQueue对象
*/
public Handler(Callback callback, boolean async) {
  if (FIND_POTENTIAL_LEAKS) {
    final Class&lt;? extends Handler&gt; ...]]></description><category></category></item><item><title><![CDATA[Python生成马赛克图片]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/84305222</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/84305222</guid><author>OneLinee</author><pubDate>Tue, 20 Nov 2018 16:40:22 +0800</pubDate><description><![CDATA[
import ctypes
import re
import numpy as np
from numpy import ctypeslib
import os
import cv2
import multiprocessing as mp
from multiprocessing.sharedctypes import RawArray
from scipy.spatial.distance ...]]></description><category></category></item><item><title><![CDATA[搭建Spring MVC框架（一站式服务）]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/82938192</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/82938192</guid><author>OneLinee</author><pubDate>Thu, 04 Oct 2018 17:22:43 +0800</pubDate><description><![CDATA[注：建议大家选择默认安装路径，出现错误也容易百度解决。

java环境配置
	tomcat安装
	IDEA安装与破解
	搭建Spring MVC
	开源项目管理工具Maven介绍
	搭建Spring MVC(Maven版)
一，Java环境搭配（win10情况下）

参考博客：https://blog.youkuaiyun.com/afei__/article/details/51464783

二，Tomc...]]></description><category></category></item><item><title><![CDATA[Android权限 (代码区2)]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/81772648</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/81772648</guid><author>OneLinee</author><pubDate>Fri, 17 Aug 2018 09:50:49 +0800</pubDate><description><![CDATA[
public class AppSettingsDialogFragment extends DialogFragment {

    public static final String TAG = &quot;AppSettingsDialogFragment&quot;;
    public static final int DEFAULT_SETTINGS_REQ_CODE = 16061;

    ...]]></description><category></category></item><item><title><![CDATA[Android权限    (代码区1)]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/81772613</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/81772613</guid><author>OneLinee</author><pubDate>Fri, 17 Aug 2018 09:49:29 +0800</pubDate><description><![CDATA[
public class RationaleDialogFragment extends DialogFragment {

    public static final String TAG = &quot;RationaleDialogFragment&quot;;

    private static final String ARG_POSITIVE_BUTTON = &quot;positiveButton&quot;;...]]></description><category></category></item><item><title><![CDATA[JSON快速入门(Java版)(代码区)]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/81502358</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/81502358</guid><author>OneLinee</author><pubDate>Wed, 08 Aug 2018 09:34:52 +0800</pubDate><description><![CDATA[
package com.qianmo.beziertest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import com.qianmo.beziertest.entity.U...]]></description><category></category></item><item><title><![CDATA[自定义View实现网易云音乐留声机效果（代码区）]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/81484792</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/81484792</guid><author>OneLinee</author><pubDate>Tue, 07 Aug 2018 17:09:30 +0800</pubDate><description><![CDATA[
//绘制旋转了指定角度的唱针
    private void drawNeedle(Canvas canvas,int degree){
        //移动坐标到水平中点
        canvas.save();
        canvas.translate(halfMeassuredWidth,0);
        //绘制唱针手臂
        needPaint.set...]]></description><category></category></item><item><title><![CDATA[贝塞尔曲线简介和安卓实现动画效果展示（代码区）]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/81385916</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/81385916</guid><author>OneLinee</author><pubDate>Fri, 03 Aug 2018 13:24:01 +0800</pubDate><description><![CDATA[
public class MyView extends View {

    private Point controlPoint = new Point(200, 200); //控制点坐标
   
    public MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        supe...]]></description><category></category></item><item><title><![CDATA[ViewPager实现Tab（2）]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/78930414</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/78930414</guid><author>OneLinee</author><pubDate>Fri, 29 Dec 2017 13:09:09 +0800</pubDate><description><![CDATA[此篇博客接上一篇，继续完成ViewPager实现tab. 
这里我们需要绑定事件。当我们点击ImageButton时实现tab切换。public void onClick(View v){
        restImg();//先把图片替换成暗色
        switch (v.getId()){
            case R.id.L1:
                mViewP]]></description><category></category></item><item><title><![CDATA[ViewPager实现Tab]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/78926945</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/78926945</guid><author>OneLinee</author><pubDate>Thu, 28 Dec 2017 22:04:53 +0800</pubDate><description><![CDATA[由于手机本身的空间没那么大，所以大部分情况我们都会使用tab来实现扩展手机页面。今天这篇博客我主要写下如何利用ViewPager 实现tab。 
这里首先我们要准备好布局。 
 
一个title布局，一个bottom布局，中间是一个ViewPager控件，这里我准备了3个tab布局。 
布局文件就不做过多说明了，主要说下活动里面利用ViewPager实现Tab。 
首先声明几个对象    priva]]></description><category></category></item><item><title><![CDATA[SQL分页加载数据]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/78882103</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/78882103</guid><author>OneLinee</author><pubDate>Sat, 23 Dec 2017 20:48:09 +0800</pubDate><description><![CDATA[最近两天看了sql分页加载数据，然后自己也动手敲了一遍，今天整理了下思路，便写篇博客来加深下印象。 
把整个项目的代码回顾一遍。大致把流程分为：
新建一个类继承SQLiteOpenHelper。在这里我们可以设计表的字段名，一般情况我们会用另外一个常量类来保存这些字段名，可能是显得比较有层次感和条理性。创建数据库对象之后首先执行onCreate()方法，这里我们可以设计出来表，然后通过execSQL]]></description><category></category></item><item><title><![CDATA[MySQL简单语法（图片）]]></title><link>https://blog.youkuaiyun.com/OneLinee/article/details/78806688</link><guid>https://blog.youkuaiyun.com/OneLinee/article/details/78806688</guid><author>OneLinee</author><pubDate>Thu, 14 Dec 2017 20:19:56 +0800</pubDate><description><![CDATA[一些函数，贴出照片留着看看。]]></description><category></category></item></channel></rss>