- Android U WMShell动画调用堆栈
yi诺千金
AndroidFramework从入门到入土WMShellandroid
本文主要简单介绍WMShell动画调用堆栈代码环境:repoinit-uhttps://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest-bandroid-14.0.0_r7Systemserver侧TAG:atcom.android.server.wm.Transition.onTransactionReady(Transition.
- Android 源码单独编译Settings模块
framework-coder
Android12系统修改与定制Android11系统定制与修改单独编译模块vbmeta_systemsuper.img
一般我们编译源码,只需要在源码的根目录下执行三个命令就行.build/envsetup.sh或者sourcebuild/envsetup.shlunch选择编译目标make-j60make不带参数的编译方式是直接编译整个系统,我们也可以使用make带模块名或者使用mmm等命令单独编译某个模块。首先找到对应模块的名称Android.bpandroid_app{name:"MtkSettings",o
- android微信小程序多任务,同一个App不同Activity显示多任务引发的问题
兔丁麻麻
android微信小程序多任务
同步发布到CSDN:https://blog.csdn.net/ling9400/article/details/80179198转载请注明出处实现activity在recenttask中,必须给需要打开的activity设置如下代码Intentintent=newIntent(myContext,ZDActivity.class);intent.addFlag(Intent.FLAG_ACTIV
- Android 12.0 App全屏时通过系统属性控制上划下拉是否显示虚拟导航栏和状态栏
VaporRuby
android
遇到问题厂测App触摸屏测试,需要全屏显示,禁止出现状态栏和导航栏,以免影响测试。参考资料https://zhuanlan.zhihu.com/p/440810585Android12系统源码_SystemUI(九)WindowInsetsController源码解析-CSDN博客解决方案1、framework修改点+++b/frameworks/base/services/core/java/c
- android11 状态栏导航栏控制显示隐藏
Optimus●Prime
androidframeworks状态栏控制statusbarnavigationbar导航栏控制
目录1.添加Intent广播2.设置全局KEY3.设置默认开关4.配置默认状态保存5.状态栏关闭时禁止下拉6.根据默认值设置显示隐藏7.配置广播控制8.使用方式通过自定义广播的形式将系统的状态栏,导航栏显示隐藏,分别控制,也可以在配置文件中默认设置显示隐藏。(效果图)1.添加Intent广播frameworks/base/core/java/android/content/Intent.java
- Android Studio 中实现高德定位并获取相应信息
切切歆语
Android开发项目时常常会遇到定位这个功能,所以写了这篇博客,今天主要讲的高德地图的定位并获取相应信息。首先导入高德的jar包image选中jar包右键点击AddAsLibrary,在build.fradle中看到如下代码表示导包成功compilefiles('libs/AMap_Location_V3.0.0_20160922.jar')之后到高德申请key值,登录打开控制台点击创建应用,如
- Android高级面试题汇总——Android篇(1)
oO樱花祭LI
Android面试
(一)Android基础知识点1、四大组件是什么Activity,Service,ContentProvider,BroadcastReceiver2、四大组件的生命周期和简单用法Activity的生命周期:onCreate()->onStart()->onResume()->onPause()->onStop()->onRestart()->onDestroy()用法:创建一个Intent对象,
- Android U 多任务启动分屏——整体流程介绍
yi诺千金
AndroidFramework从入门到入土Android分屏Android多窗口android
序原生的分屏功能是在多任务中,点击应用图标选择分屏,在选择多任务中的其他应用进行分屏整体流程层级结构#1DefaultTaskDisplayAreatype=undefinedmode=fullscreenoverride-mode=fullscreenrequested-bounds=[0,0][0,0]bounds=[0,0][1440,2960]#1Task=3type=standardmo
- Android12 添加设置控制导航栏显示和状态栏下拉
framework-coder
Android12系统修改与定制panelbarnavigationbar
添加key值位置:frameworks/base/core/java/android/provider/Settings.java/***Controlnavigationbarenabled*/@Readable@SuppressLint("NoSettingsProvider")publicstaticfinalStringNAVIGATIONBAR_ENABLED="navigationba
- Android Activity 的启动模式(Launch Mode)
文件夹__iOS
android
1.什么是Activity的启动模式?Activity的启动模式决定了在启动一个Activity时,它在任务栈中的行为。任务栈(TaskStack)是一个先进后出的堆栈结构,管理着应用中的Activity。通过配置启动模式,我们可以控制Activity在任务栈中的实例化和复用行为,从而优化用户体验和应用性能2.四种启动模式详解standard------------------------|Act
- 数美Android SDK
CCTV果冻爽
客户端安全android
后台下发设备ID:{"code":1100,"detail":{"deviceId":"2022031717360980a6cdb615ba3504dfcb67fdcff7e579014e0692f02b45b3"},"requestId":"bec18af68100f08f7dffb4868784ef28"}文件路径、stat文件节点信息,__system_property_get系统属性、硬件
- RK3568 Android 11 蓝牙BluetoothA2dpSink 获取用于生成频谱的PCM
ansondroider
androidandroidpcmA2dpSink
Android中的A2DPSinkA2DPSink在Android系统中主要用于接收其他蓝牙设备(如手机、平板、电脑等)发送过来的高质量的立体声音频。简单来说,它让你的Android设备可以充当一个蓝牙音箱或耳机的角色。核心功能:接收音频流:通过蓝牙协议接收来自其他设备的音频数据。解码音频:将接收到的音频数据解码成可播放的音频格式。播放音频:通过设备的扬声器或耳机输出解码后的音频。应用场景:无线音
- AUTOX.JS 新手入门
换个网名有点难
javascript开发语言
工具介绍1.autoxjs1.1autojs介绍Auto.js是一个使用JavaScript编写Android自动化脚本的工具,由于原作者不再维护Auto.js项目,目前常见的两个分支:AutoX和Auto.jsPro。其中AutoX是开源的https://github.com/kkevsekk1/AutoX文档:http://doc.autoxjs.com/#/Auto.jsPro商业化版本,闭
- 【Android】Navigation动态设置Graph和Launch参数
ByteFlys
android-疑难杂症研究androidnavigationNavGraph动态设置
需求Activity和Fragment可以服用,不同的启动方式,Fragment调用栈不同方案不同的启动方式,通过代码动态设置,使用不同的NavGraph注意动态设置代码是在onCreate之后执行的NavHost如果指定了Graph,在onCreate后会立刻启动,可能会造成启动两个Fragment栈所以使用动态Graph方案的话,在NavHost中不能设置app:navGraph动态设置代码p
- Android实现自定义方向盘-5livedata实现
榴月~
androidandroid
实现方向盘将方向盘控件的实现转换为使用LiveData来管理和观察指针角度变化,能够更好地与MVVM架构相结合。通过LiveData,我们可以方便地将角度的变化传递给观察者(例如UI组件或ViewModel),从而实现数据驱动的UI更新。实现思路LiveData定义:在SteeringWheelView中定义一个MutableLiveData用来存储和管理当前指针角度。角度更新与通知:每当指针角度
- Android系统给所有apk默认权限
jacbod
Framwork定制androidjavaandroidstudio驱动开发linux
Android系统的定制开发中,经常会有客户要求赋予他们提供的应用程序(APK)所默认的所有权限;百度上有多种版本可以给与默认权限,但是经过博主试验,都是比较复杂麻烦的操作;在这里博主给出一个简单方便方法,直接上代码;---a/frameworks/base/services/core/java/com/android/server/pm/permission/Permission.java+++
- UniApp首页与导航页设计开发全攻略
new_一个对象
小程序商城crmeb商城phpuni-app微信小程序crmebphp
一、简介UniApp是一款基于Vue.js框架的跨平台开发工具,可以帮助开发者使用一套代码快速构建出多个平台的应用程序,如iOS、Android、Web等。在UniApp中,首页和导航页是应用程序中必备的两个页面,本文将介绍如何在UniApp中设计和开发这两个页面,并给出相应的代码示例。二、首页设计与开发方法1.页面结构UniApp的首页一般包含标题栏、轮播图、分类导航和推荐商品等模块。其中,轮播
- 推荐开源项目:YouTube WatchMe for Android - 实时直播的魅力
许煦津
推荐开源项目:YouTubeWatchMeforAndroid-实时直播的魅力1、项目介绍YouTubeWatchMe是一个专为Android设计的开源应用,它允许您轻松创建并实时流式传输到YouTube直播事件中。这个创新的应用不仅展示了如何运用YouTube数据APIv3和YouTube直播API,还整合了GooglePlay服务和PlusAPI,为您带来无缝的社交互动体验。该项目源自一个官方
- 安卓开发使用seekBar改变ImageView中图片的色彩
我要最优解
android
前提:ColorMatrix类想要改变ImageView中图片的参数,我们需要先了解ColorMatrix类:ColorMatrix是Android中的一个类,它属于android.graphics包。它用于对图像进行颜色变换,包括但不限于亮度、对比度、饱和度、色调和色相的调整。ColorMatrix通过一个4x5的矩阵来定义线性变换,这个矩阵可以对图像的RGB颜色空间进行操作。他有以下几种常用操
- 记录一些项目中常见的概念、方法、控件
我要最优解
笔记
等记录多一点内容的时候会分个类三个绑定类1、ViewDataBindingViewDataBinding是AndroidDataBinding库的一个特性,它允许开发者在不完全采用DataBinding模型的情况下,仍然能够从布局文件中获取绑定的视图。ViewDataBinding主要是为了减少常见的findViewById调用,从而提高代码的可读性和可维护性。当在项目中启用DataBinding
- 安卓开发中的Glide库的使用
我要最优解
androidglide
Glide是一个功能强大的Android图片加载库,它支持加载多种类型的图片格式。以下是Glide可以处理的一些常见图片类型:JPEG:支持加载JPEG格式的图片。PNG:支持加载PNG格式的图片,包括具有透明背景的图片。GIF:支持加载GIF动画,并能够播放动画或将其作为静态帧显示。WebP:支持加载Google的WebP格式图片,包括无损和有损压缩的变体。Bitmap:可以直接加载Androi
- 探秘Appium:自动化移动应用测试的新篇章
房耿园Hartley
探秘Appium:自动化移动应用测试的新篇章项目简介Appium是一个开源的自动化测试框架,它允许开发者对原生(Native)、混合(Hybrid)以及移动Web应用程序进行自动化测试。无论你的应用程序是基于iOS还是Android平台,Appium都能提供一套统一的API,让你以熟悉的编程语言如Java、Python、Ruby等编写测试脚本。技术分析WebDriver接口Appium的核心理念是
- 【L1.第五章】 Appium Capablility 配置参数详细解析
一禅(OneZen)
「Appium」App自动化测试appiumpythonweb自动化seleniumpytest
Python+Appium+Pytest自动化测试教程AppiumCapablility配置参数详细解析1、W3C标准Capability解析2、常用的公共Capability解析3、Android部分特有参数配置解析4、IOS独有参数配置解析5、DesireCapability初始化参数6、DesireCapability推荐添加参数7、DesireCapablility完美优化参数Appium
- Android 9.0 mtp模式下PC上显示两个内部存储的问题解决办法
安卓兼职framework应用工程师
android9.0Rom定制化系统开发讲解系列androidmtppc显示多个内部存储内部存储异常mtp异常
1.前言在9.0的系统产品开发中,在mtp模式下,有些时候会在pc端显示两个手机内部存储空间,所以这时候显得特别不友好,出于对产品的完善,所以要求解决这个问题,接下来分析下这个问题2.mtp模式下PC上显示两个内部存储的问题解决办法的核心类frameworks\base\media\java\android\mtp\MtpDatabase.javaframeworks\av\media\mtp\M
- 开始学习大数据
昨天的殇
我是一个java开发人员,做java服务器开发已经有一年的时间了,而实际的开发经验有两年的时间,最开始的一年的时间,我从事与Android开发。而为什么从Android开发转到Java服务器开发,有如下原因:1.我自己对于做界面不太喜欢,而且也没有足够的耐心去调试界面,而且对于深度,我有足够的畏惧,因为越学到后面,就必须要对面Android的内核,这个是当时自己没有足够的多的信息继续走Androi
- [RK3568 Android11]开发之PCA9535 GPIO扩展芯片调试
~未来可期~
RK3568扩展GPIOPCA9535kernelpca9535linux驱动嵌入式教程
总目录链接:[RK3568Android11]本专栏说明和总目录目录前言一、PCA9535芯片1、芯片引脚定义2、I2C地址二、PCA9535驱动1、PCA9535驱动说明2、内核配置打开PCA9535驱动3、DTS设备树配置4、PCA9535驱动文件5、PCA9535GPIO实际使用前言RK3568芯片上的硬件资源是非常紧张,比如GPIO口不够使用时,这时就需要考虑使用GPIO扩展芯片来扩展GP
- 2020-04-15 Android中Glide获取缓存大小并清除缓存图片
面向未来41319
今天在使用Glide的时候发现url里面的图片已经修改了,但ImageView一直不更新,不管退出,重启应用程序,想到是缓存的问题,那就要清除缓存清除缓存的方法有Glide.get(this).clearDiskCache();Glide.get(this).clearMemory();但是不能运行在主线程中,需要另外启动线程来运行@OverrideprotectedvoidonCreate(Bu
- iOS android git .gitignore 文件的常见写法
jeffasd
iOS_Gitiosandroidgit
iOScat.gitignore//这里是写法把不必要的垃圾文件过滤掉xcuserdata/Pods*.xcworkspace.DS_Store.idea*.xcuserstate*.xcuserdatad/android*.iml.gradle/local.properties/.idea/caches/.idea/libraries/.idea/modules.xml/.idea/worksp
- Android 10.0 开机广播发送流程分析
安卓兼职framework应用工程师
android10.0Rom定制化高级进阶android开机广播开机广播发送流程开机流程开机广播流程
1.前言在10.0的系统rom定制化开发中,对于在实现开启自启动app实现的功能开发中,所以就需要了解开机广播具体的发送流程,从而来完善实现接收到开机广播,然后自启动app的功能,接下来看下自启动app的功能实现2.开机广播发送流程分析的核心类frameworks/base/services/core/java/com/android/server/am/UserController.javafr
- 《第三十章 性能优化 - 存储优化》
黑色叉腰丶大魔王
学习性能优化
一、引言在Android应用开发中,性能优化是一个持续且重要的工作。存储优化作为性能优化的关键环节之一,对于提高应用的响应速度、节省资源以及提升用户体验具有重要意义。在本章中,我们将重点探讨数据库优化和缓存策略这两个主要知识点。二、数据库优化(一)合理设计数据库表结构选择合适的数据类型:根据实际存储的数据量和操作需求,选择恰当的数据类型,避免过度占用空间。例如,对于整数类型,如果取值范围较小,使用
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持