<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[liweixin2018的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/liweixin2018</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; liweixin2018]]></copyright><item><title><![CDATA[机器学习入门介绍]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/130517327</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/130517327</guid><author>liweixin2018</author><pubDate>Sun, 07 May 2023 20:21:58 +0800</pubDate><description><![CDATA[随着GPT、stable diffusion等生成式AI模型受到大众的广泛关注，机器学习也开始走向我们的视野。那么什么是机器学习呢？机器学习约等于让机器自动去找到一个函数yfxy= f(x)yfx，然后通过这个函数来解决我们任务中的问题。Midjourney：我们期望函数输入是一段文字，输出是一段图片GPT： 输入是一段文字，输出是另外一段文字一个预测房价的模型：我们期望函数输入的是房子的属性(房子的地段、建筑年龄、周围的交通)。而函数的输出是房子的价格。]]></description><category></category></item><item><title><![CDATA[安卓Audio系统]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/115034437</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/115034437</guid><author>liweixin2018</author><pubDate>Fri, 05 May 2023 23:21:44 +0800</pubDate><description><![CDATA[afFrameCount--音频硬件BUFFER的大小

afFrameCount/afSampleRate--播放完音频硬件BUFFER中的数据需要多长时间，单位是秒。

忽视声道数，单位时间内的frame count值与单位时间内的采样率值是一样的。

((1000 * afFrameCount) / afSampleRate)--转换为毫秒

afLatency--硬件延迟的最大时间



什么是硬件延迟？

硬件播放硬件BUFFER里的数据，导致硬件可能有一段时间不能从客户端进程取得数据。具...]]></description><category></category></item><item><title><![CDATA[温室下的程序猿]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/117062544</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/117062544</guid><author>liweixin2018</author><pubDate>Thu, 20 May 2021 09:21:22 +0800</pubDate><description><![CDATA[来时，室外晨光熹微，室内灯火通明

去时，室外夜深人静，室内灯火通明

我见过凌晨三点的归家路，

但我重来没见过下班路上的夕阳。



听说，赌场24小时灯火通明，让人忘却时间

环视，办公室窗门紧闭，灯火通明，具有相同魔力的场。

开会，经过走廊，早上还是风和日丽，现已疾风骤雨。

我们有永不熄灭的灯火，四季常温的空调，

但是我们不曾拥有春风，夏雨，秋叶和冬雪。

雨过天晴，人们看到绚丽的彩虹悬挂空中，欢喜、拍照，

而我的彩虹在朋友圈。



使用程序语言，对着机器聊了半天，疲惫与压抑

想找人..]]></description><category></category></item><item><title><![CDATA[安卓系统JAVA应用消息驱动系统：Looper & Handler]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/114955403</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/114955403</guid><author>liweixin2018</author><pubDate>Sat, 20 Mar 2021 11:28:38 +0800</pubDate><description><![CDATA[一、消息驱动系统

安卓系统中的java应用程序和其他系统上相同，都是靠消息驱动来工作的。如下图：



有一个消息队列，可以往这个消息队列中投递消息。
	有一个消息循环，不断从消息队列中取出消息，然后处理
这些工作在安卓中由Looper和Handler来实现。



二、Looper

Looper类使用案例：


class LooperThread extends Thread {
    public Handler mHandler;
    public void run() {
      .]]></description><category></category></item><item><title><![CDATA[安卓C下线程Thread、锁、原子操作]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/114828507</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/114828507</guid><author>liweixin2018</author><pubDate>Wed, 17 Mar 2021 09:22:40 +0800</pubDate><description><![CDATA[一、安卓C下Thread

1、使用场景

安卓C下，创建线程一般通过继承Thread类，并重下threadLoop()函数实现，示例代码如下：


class PoolThread : public Thread
  {
  public:
      explicit PoolThread(bool isMain)
          : mIsMain(isMain)
      {
      }
  
  protected:
      virtual bool threadLoop()
   ]]></description><category></category></item><item><title><![CDATA[安卓系统Binder通信和系统服务管理]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/114678771</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/114678771</guid><author>liweixin2018</author><pubDate>Sun, 14 Mar 2021 16:15:15 +0800</pubDate><description><![CDATA[一、概述

Binder 是Android 系统提供的一种基于C/S架构体系的IPC机制。安卓系统通过ServiceManager管理系统服务器。

服务提供者通可以通过Binder通信向ServiceManager注册服务器，而Client可以向ServiceManager查询服务，并且获

取自己需要的服务器的handle，然后通过Binder调用自己需要服务器。架构如下：



二、Server如何通过Binder与ServiceManager通信

    我们以MediaServer为例，...]]></description><category></category></item><item><title><![CDATA[安卓系统智能指针：RefBase、sp、wp]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/114649730</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/114649730</guid><author>liweixin2018</author><pubDate>Thu, 11 Mar 2021 00:23:30 +0800</pubDate><description><![CDATA[在安卓中，RefBase结合sp（强指针）和wp(弱指针)，实现了通过引用计数的方法来控制对象的生命周期的机制，解决对象的自动释放的问题。在C++编程中，有两个很让人头痛的问题：一是忘记释放动态申 请的对象从而造成内存泄露(通过new生成的对象，需要调用delete才能释放内存)；二是对象在一个地方释放后，又在别的地方被使用，从而引起内存访问错误（多个指针指向同一个对象，其中一个指针delete）。在使用RefBase后，动态申请的内存将会被自动释放（有点类似Java的垃圾回收），不需要再使用delete来]]></description><category></category></item><item><title><![CDATA[安卓IPC机制：Binder和AIDL]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/79146486</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/79146486</guid><author>liweixin2018</author><pubDate>Wed, 24 Jan 2018 07:57:59 +0800</pubDate><description><![CDATA[1、继承树


2、介绍

Binder是Android跨进程通信方式，解决基于C/S模式的进程间通信。

实现了IBinder接口，是ServiceManager连接各种Manager的接口。

Binder在安卓系统中的位置：







3、Binder实现IPC

Client 通过bindService 后，返回一个IBinder指针，可以调用Bi]]></description><category></category></item><item><title><![CDATA[组件：Intent 和 intent-filter详细介绍]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/79146484</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/79146484</guid><author>liweixin2018</author><pubDate>Wed, 24 Jan 2018 07:54:43 +0800</pubDate><description><![CDATA[1、继承树
Intent
public class Intent

extends Object implements Parcelable, Cloneable



java.lang.Object
↳ android.content.Intent




2、Intent作用：
（1）APP内一个组件启动另外一个组件。
（2）一件组件启动另外一个APP的组件。]]></description><category></category></item><item><title><![CDATA[组件：BroadcastReceiver]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/79146483</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/79146483</guid><author>liweixin2018</author><pubDate>Wed, 24 Jan 2018 07:53:01 +0800</pubDate><description><![CDATA[1、作用

安卓提供的广播发布和订阅机制。BroadcastReceiver可以接收系统和应用的广播。
安卓系统也会发出一些广播：开机广播、电量低广播，网络状态改变广播（Intent中的不同Action）

应用可以通过sendBroadcast();方法发送广播。
2、注册机制

BroadcastReceiver要接收广播，需要注册自己关注的Action

(1)静态注册]]></description><category></category></item><item><title><![CDATA[组件：Context详细介绍]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/79146475</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/79146475</guid><author>liweixin2018</author><pubDate>Wed, 24 Jan 2018 07:47:48 +0800</pubDate><description><![CDATA[一、Context继承树



（1）ContextWrapper：为包装类，实际功能由ContextImpl提供。
（2）Application、Service、Activity类加载时，系统自动生成ContextImpl，并把指针给ContextWrapper。
（3）ContextThemeWrapper:继承了ContextWrapper，添加Theme内容，专为Activit]]></description><category></category></item><item><title><![CDATA[java 类包、JAR包、做成exe]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/79104982</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/79104982</guid><author>liweixin2018</author><pubDate>Fri, 19 Jan 2018 11:36:26 +0800</pubDate><description><![CDATA[1、类包定义：package com.cvte.tools;
2、类包编译指令：
(1)SSHLinux.java 文件中import其他包，编译时需求 --classpath指定包路径
在source下
javac -d ../classes -classpath ../classes com/cvte/tools/SSHLinux.java
3、运行类包程序
cd classes]]></description><category></category></item><item><title><![CDATA[Android组件 Service详细介绍]]></title><link>https://blog.youkuaiyun.com/liweixin2018/article/details/79104950</link><guid>https://blog.youkuaiyun.com/liweixin2018/article/details/79104950</guid><author>liweixin2018</author><pubDate>Fri, 19 Jan 2018 11:34:23 +0800</pubDate><description><![CDATA[一、Service分为：Bound Service和Unbound Service两种
(同一个Service可以是Unbound Service，又同时是Bound Service)
Unbound Service:

启动方式：其他组件调用：startService()

停止方式：其他组件调用：stopService() 自己调用：stopSelf()

通信：组件无法和Se]]></description><category></category></item></channel></rss>