案例 APP Store 数据分析
1 案例介绍
案例背景
对APP下载和评分数据分析帮助App开发者获取和留存用户
通过对应用商店的数据分析为开发人员提供可操作的意见
通过数据分析要解决的问题
免费和收费的App都集中在哪些类别
收费app的价格是如何分布的,不同类别的价格分布怎样
App文件的大小和价格以及用户评分之间是否有关
分析流程
数据概况分析
数据行/列数量
缺失值分布
单变量分析
数字型变量的描述指标(平均值,最小值,最大值,标准差等)
类别型变量(多少个分类,各自占比)
多变量分析
按类别交叉对比
变量之间的相关性分析
可视化分析
分布趋势(直方图)
不同组差异(柱状图)
相关性(散点图/热力图)
数据字段说明
id : App ID 每个App唯一标识
track_name: App的名称
size_bytes: 以byte为单位的app大小
price:定价(美元)
rating_count_tot: App所有版本的用户评分数量
rating_count_ver: App当前版本的用户评分数量
prime_genre: App的类别
user_rating: App所有版本的用户评分
sup_devices.num: 支持的iOS设备数量
ipadSc_urls.num: app提供的截屏展示数量
lang.num 支持的语言数量
2 数据清洗
import pandas as pd
app=pd.read_csv("applestore.csv")
app.head()
Unnamed: 0 | id | track_name | size_bytes | price | rating_count_tot | user_rating | prime_genre | sup_devices | ipadSc_urls | lang | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 281656475 | PAC-MAN Premium | 100788224 | 3.99 | 21292 | 4.0 | Games | 38 | 5 | 10 |
1 | 1 | 281796108 | Evernote - stay organized | 158578688 | 0.00 | 161065 | 4.0 | Productivity | 37 | 5 | 23 |
2 | 2 | 281940292 | WeatherBug - Local Weather, Radar, Maps, Alerts | 100524032 | 0.00 | 188583 | 3.5 | Weather | 37 | 5 | 3 |
3 | 3 | 282614216 | eBay: Best App to Buy, Sell, Save! Online Shop... | 128512000 | 0.00 | 262241 | 4.0 | Shopping | 37 | 5 | 9 |
4 | 4 | 282935706 | Bible | 92774400 | 0.00 | 985920 | 4.5 | Reference | 37 | 5 | 45 |
app.info()
'''
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7197 entries, 0 to 7196
Data columns (total 11 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 Unnamed: 0 7197 non-null int64 1 id 7197 non-null int64 2 track_name 7197 non-null object 3 size_bytes 7197 non-null int64 4 price 7197 non-null float645 rating_count_tot 7197 non-null int64 6 user_rating 7197 non-null float647 prime_genre 7197 non-null object 8 sup_devices 7197 non-null int64 9 ipadSc_urls 7197 non-null int64 10 lang 7197 non-null int64
dtypes: float64(2), int64(7), object(2)
memory usage: 618.6+ KB
'''
app.describe()
Unnamed: 0 | id | size_bytes | price | rating_count_tot | user_rating | sup_devices | ipadSc_urls | lang | |
---|---|---|---|---|---|---|---|---|---|
count | 7197.000000 | 7.197000e+03 | 7.197000e+03 | 7197.000000 | 7.197000e+03 | 7197.000000 | 7197.000000 | 7197.000000 | 7197.000000 |
mean | 3598.000000 | 8.631310e+08 | 1.991345e+08 | 1.726218 | 1.289291e+04 | 3.526956 | 37.361817 | 3.707100 | 5.434903 |
std | 2077.739276 | 2.712368e+08 | 3.592069e+08 | 5.833006 | 7.573941e+04 | 1.517948 | 3.737715 | 1.986005 | 7.919593 |
min | 0.000000 | 2.816565e+08 | 5.898240e+05 | 0.000000 | 0.000000e+00 | 0.000000 | 9.000000 | 0.000000 | 0.000000 |
25% | 1799.000000 | 6.000937e+08 | 4.692275e+07 | 0.000000 | 2.800000e+01 | 3.500000 | 37.000000 | 3.000000 | 1.000000 |
50% | 3598.000000 | 9.781482e+08 | 9.715302e+07 | 0.000000 | 3.000000e+02 | 4.000000 | 37.000000 | 5.000000 | 1.000000 |
75% | 5397.000000 | 1.082310e+09 | 1.819249e+08 | 1.990000 | 2.793000e+03 | 4.500000 | 38.000000 | 5.000000 | 8.000000 |
max | 7196.000000 | 1.188376e+09 | 4.025970e+09 | 299.990000 | 2.974676e+06 | 5.000000 | 47.000000 | 5.000000 | 75.000000 |
#发现了unname 0这个奇怪的变量,需要进行清理
app.drop('Unnamed: 0',axis=1, inplace=True) #inplace=True直接在原始数据中保存排序之后的结果
#drop默认是对行
#inplace表示直接替换掉原有数据
#同样可以用位置来举
#app.drop(app.columns[0],axis=1,inplace=True)
app
id | track_name | size_bytes | price | rating_count_tot | user_rating | prime_genre | sup_devices | ipadSc_urls | lang | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 281656475 | PAC-MAN Premium | 100788224 | 3.99 | 21292 | 4.0 | Games | 38 | 5 | 10 |
1 | 281796108 | Evernote - stay organized | 158578688 | 0.00 | 161065 | 4.0 | Productivity | 37 | 5 | 23 |
2 | 281940292 | WeatherBug - Local Weather, Radar, Maps, Alerts | 100524032 | 0.00 | 188583 | 3.5 | Weather | 37 | 5 | 3 |
3 | 282614216 | eBay: Best App to Buy, Sell, Save! Online Shop... | 128512000 | 0.00 | 262241 | 4.0 | Shopping | 37 | 5 | 9 |
4 | 282935706 | Bible | 92774400 | 0.00 | 985920 | 4.5 | Reference | 37 | 5 | 45 |
处理内存大小
app['size_mb'] =app["size_bytes"]/(1024*1024.0)
app['size_mb']
'''
0 96.119141
1 151.232422
2 95.867188
3 122.558594
4 88.476562...
7192 120.777344
7193 115.166016
7194 106.165039
7195 92.731445
7196 86.687500
Name: size_mb, Length: 7197, dtype: float64
'''
app.head()
id | track_name | size_bytes | price | rating_count_tot | user_rating | prime_genre | sup_devices | ipadSc_urls | lang | size_mb | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 281656475 | PAC-MAN Premium | 100788224 | 3.99 | 21292 | 4.0 | Games | 38 | 5 | 10 | 96.119141 |
1 | 281796108 | Evernote - stay organized | 158578688 | 0.00 | 161065 | 4.0 | Productivity | 37 | 5 | 23 | 151.232422 |
2 | 281940292 | WeatherBug - Local Weather, Radar, Maps, Alerts | 100524032 | 0.00 | 188583 | 3.5 | Weather | 37 | 5 | 3 | 95.867188 |
3 | 282614216 | eBay: Best App to Buy, Sell, Save! Online Shop... | 128512000 | 0.00 | 262241 | 4.0 | Shopping | 37 | 5 | 9 | 122.558594 |
4 | 282935706 | Bible | 92774400 | 0.00 | 985920 | 4.5 | Reference | 37 | 5 | 45 | 88.476562 |
app.size_mb.describe()
'''
count 7197.000000
mean 189.909414
std 342.566408
min 0.562500
25% 44.749023
50% 92.652344
75% 173.497070
max 3839.463867
Name: size_mb, dtype: float64
'''
处理价格,查看是付费的还是免费的
# 区分收费和免费app
app['paid']=app["price"].apply(lambda x:1 if x>0 else 0)
app['paid']0 1
1 0
2 0
3 0
4 0..
7192 0
7193 0
7194 1
7195 0
7196 0
Name: paid, Length: 7197, dtype: int64
①清洗异常值(unamed)
②处理了给分析造成难度的值(size-bytes)
③添加了方便分析的特征(免费/收费)
3 单变量分析
#value_counts (price,prime_genre)
#value_Coutn只能对应series,不能对整个dataframe做操作
app.price.value_counts()
'''
0.00 4056
0.99 728
2.99 683
1.99 621
4.99 394
3.99 277
6.99 166
9.99 81
5.99 52
7.99 33
14.99 21
19.99 13
8.99 9
24.99 8
13.99 6
11.99 6
29.99 6
12.99 5
15.99 4
59.99 3
17.99 3
22.99 2
23.99 2
20.99 2
27.99 2
16.99 2
49.99 2
39.99 2
74.99 1
18.99 1
34.99 1
99.99 1
299.99 1
47.99 1
21.99 1
249.99 1
Name: price, dtype: int64
'''
#value_counts (price,prime_genre)
#value_Coutn只能对应series,不能对整个dataframe做操作
app["price"].describe()
'''
count 7197.000000
mean 1.726218
std 5.833006
min 0.000000
25% 0.000000
50% 0.000000
75% 1.990000
max 299.990000
Name: price, dtype: float64
'''
bins = [0,2,10,300] #app.price.value_counts()从上面数据显示基本都是在10以内的
labels = [ '<2', '<10','<300']
app['price_new']=pd.cut(app.price, bins, right=False, labels=labels) #bin;right=False,默认是左开右闭,现在是坐闭右开
#分组后查看数据分布情况
app.groupby(['price_new'])['price'].describe()
count | mean | std | min | 25% | 50% | 75% | max | |
---|---|---|---|---|---|---|---|---|
price_new | ||||||||
<2 | 5405.0 | 0.361981 | 0.675318 | 0.00 | 0.00 | 0.00 | 0.00 | 1.99 |
<10 | 1695.0 | 4.565811 | 1.864034 | 2.99 | 2.99 | 3.99 | 4.99 | 9.99 |
<300 | 97.0 | 28.124021 | 38.886220 | 11.99 | 14.99 | 19.99 | 24.99 | 299.99 |
# groupby的操作,不同类别app的价格分布
app.groupby(['prime_genre'])['price'].describe() #根据类别规划价格区间
count | mean | std | min | 25% | 50% | 75% | max | |
---|---|---|---|---|---|---|---|---|
prime_genre | ||||||||
Book | 112.0 | 1.790536 | 3.342210 | 0.0 | 0.0 | 0.00 | 2.99 | 27.99 |
Business | 57.0 | 5.116316 | 10.247031 | 0.0 | 0.0 | 2.99 | 4.99 | 59.99 |
Catalogs | 10.0 | 0.799000 | 2.526660 | 0.0 | 0.0 | 0.00 | 0.00 | 7.99 |
Education | 453.0 | 4.028234 | 18.725946 | 0.0 | 0.0 | 2.99 | 2.99 | 299.99 |
Entertainment | 535.0 | 0.889701 | 1.454022 | 0.0 | 0.0 | 0.00 | 1.99 | 9.99 |
Finance | 104.0 | 0.421154 | 1.108990 | 0.0 | 0.0 | 0.00 | 0.00 | 5.99 |
Food & Drink | 63.0 | 1.552381 | 3.972119 | 0.0 | 0.0 | 0.00 | 1.49 | 27.99 |
Games | 3862.0 | 1.432923 | 2.486609 | 0.0 | 0.0 | 0.00 | 1.99 | 29.99 |
Health & Fitness | 180.0 | 1.916444 | 2.052378 | 0.0 | 0.0 | 1.99 | 2.99 | 9.99 |
Lifestyle | 144.0 | 0.885417 | 1.478410 | 0.0 | 0.0 | 0.00 | 1.24 | 4.99 |
Medical | 23.0 | 8.776087 | 10.788269 | 0.0 | 0.0 | 3.99 | 16.99 | 34.99 |
Music | 138.0 | 4.835435 | 8.915667 | 0.0 | 0.0 | 0.99 | 4.99 | 49.99 |
Navigation | 46.0 | 4.124783 | 11.565818 | 0.0 | 0.0 | 0.99 | 3.74 | 74.99 |
News | 75.0 | 0.517733 | 1.127771 | 0.0 | 0.0 | 0.00 | 0.00 | 3.99 |
Photo & Video | 349.0 | 1.473295 | 2.280703 | 0.0 | 0.0 | 0.99 | 1.99 | 22.99 |
Productivity | 178.0 | 4.330562 | 8.747042 | 0.0 | 0.0 | 1.99 | 4.99 | 99.99 |
Reference | 64.0 | 4.836875 | 8.285100 | 0.0 | 0.0 | 1.99 | 4.99 | 47.99 |
Shopping | 122.0 | 0.016311 | 0.180166 | 0.0 | 0.0 | 0.00 | 0.00 | 1.99 |
Social Networking | 167.0 | 0.339880 | 1.142210 | 0.0 | 0.0 | 0.00 | 0.00 | 9.99 |
Sports | 114.0 | 0.953070 | 2.419084 | 0.0 | 0.0 | 0.00 | 0.99 | 19.99 |
Travel | 81.0 | 1.120370 | 2.183772 | 0.0 | 0.0 | 0.00 | 0.99 | 9.99 |
Utilities | 248.0 | 1.647621 | 2.628541 | 0.0 | 0.0 | 0.99 | 1.99 | 24.99 |
Weather | 72.0 | 1.605417 | 1.831316 | 0.0 | 0.0 | 0.99 | 2.99 | 9.99 |
#删除价格大于等于49.99的app
app=app[app['price']<=49.99]
app.shape
#(7190, 15)
结论:经过对应用分类,对价格情况的分析得出,专业类的应用价格偏高,娱乐休闲类的应用价格普遍不高,大多数免费
#评论情况分析
app.rating_count_tot.describe()count 7.190000e+03
mean 1.290515e+04
std 7.577526e+04
min 0.000000e+00
25% 2.725000e+01
50% 3.005000e+02
75% 2.796750e+03
max 2.974676e+06
Name: rating_count_tot, dtype: float64
#对用户打分的分组
bins = [0,1000,5000,100000,5000000]
app['rating_new']=pd.cut(app.rating_count_tot, bins, right=False)app['rating_new']0 [5000, 100000)
1 [100000, 5000000)
2 [100000, 5000000)
3 [100000, 5000000)
4 [100000, 5000000)...
7192 [0, 1000)
7193 [0, 1000)
7194 [0, 1000)
7195 [0, 1000)
7196 [0, 1000)
Name: rating_new, Length: 7190, dtype: category
Categories (4, interval[int64]): [[0, 1000) < [1000, 5000) < [5000, 100000) < [100000, 5000000)]
#用户打分和价格的关系
app.groupby(['rating_new'])['price'].describe()
count | mean | std | min | 25% | 50% | 75% | max | |
---|---|---|---|---|---|---|---|---|
rating_new | ||||||||
[0, 1000) | 4587.0 | 1.798696 | 3.324682 | 0.0 | 0.0 | 0.0 | 2.99 | 49.99 |
[1000, 5000) | 1193.0 | 1.740721 | 3.203853 | 0.0 | 0.0 | 0.0 | 2.99 | 39.99 |
[5000, 100000) | 1192.0 | 0.963549 | 1.984895 | 0.0 | 0.0 | 0.0 | 0.99 | 14.99 |
[100000, 5000000) | 218.0 | 0.196376 | 0.925160 | 0.0 | 0.0 | 0.0 | 0.00 | 7.99 |
4 业务数据可视化
#可视化部分
import matplotlib.pyplot as plt
import seaborn as sns #seaborn是封装在matplotlib库之上的可视化库,这个库提供了丰富的可视化模板,使画图更加方便。简化封装,不能把matplotlib去掉。
%matplotlib inline
#app评分关系
plt.figure(figsize=(30,20))#调整大小
sns.relplot(x="prime_genre", y="user_rating",kind='line', #line折线图的意思data=app) #折线图
app1=app[app['price']<=9.99]
#直方图,APP价格的分布
sns.distplot(app1['price'])
#业务问题2:收费app的价格分布是如何的?不同类别之间有关系吗?#箱线图,不同类别APP价格
plt.figure(figsize=(10,8))#调整大小
sns.boxplot(x='price',y='prime_genre',data=app[app['paid']==1])#业务解答:价格绝大部分都集中在9.99美元以内,个别类别(如医疗)等因专业性总体价格会高于其他类别
#箱线图,前五个类别的app价格
app5 = app[app["prime_genre"].isin(['Games','Entertainment','Education','Photo & Video','Utilities'])]
plt.figure(figsize=(10,8))#调整大小
sns.boxplot(x='price',y='prime_genre',data=app5[app['paid']==1])
关于箱线图
箱子的中间有一条线,代表了数据的中位数
箱子的上下底,分别是数据的上四分位数(Q3)和下四分位数(Q1)
箱体包含了50%的数据。因此,箱子的高度在一定程度上反映了数据的波动程度
上下边缘则代表了该组数据的最大值和最小值
有时候箱子外部会有一些点,可以理解为数据中的“异常值”
#散点图,价格和用户评分的分布
sns.scatterplot(x='price',y='user_rating',data=app)
#只保留五个类别数据
top5= ['Games','Entertainment', 'Education', 'Photo & Video','Utilities']
app5 = app[app.prime_genre.isin(top5)]
#柱状图,前5个类别app的用户评分均值
#同一类别,将免费和付费的评分进行对比
plt.figure(figsize=(10,8))
sns.barplot(x='prime_genre',y='user_rating',hue='paid',data=app5)
5 业务解读
问题一 免费或收费APP集中在哪些类别
第一步,将数据加总成每个类别有多少个app
第二步,从高到低进行排列
第三步,将数据进行可视化
#使用countplot--count是对数据加总,plot将数据进行可视化
#使用order对数据进行排序
#countplot 排序画图一起搞 order代入y轴顺序
plt.figure(figsize=(20,10))
#hue 可以传入从0开始的分类字段,可以绘制出一个对比柱状图 这里对比的是付费免费数量
sns.countplot(y='prime_genre',hue='paid',data=app,order=app['prime_genre'].value_counts().index)
plt.tick_params(labelsize=20)#业务解答:都是高度集中在游戏类别
免费与收费的APP在不同评分区间的分布
bins=[0,0.1,2.5,4.5,5]
app['rating_level']=pd.cut(app.user_rating,bins,right=False)
app.groupby(['rating_level'])['user_rating'].describe()
count | mean | std | min | 25% | 50% | 75% | max | |
---|---|---|---|---|---|---|---|---|
rating_level | ||||||||
[0.0, 0.1) | 929.0 | 0.000000 | 0.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
[0.1, 2.5) | 206.0 | 1.650485 | 0.400213 | 1.0 | 1.5 | 2.0 | 2.0 | 2.0 |
[2.5, 4.5) | 2903.0 | 3.646056 | 0.467987 | 2.5 | 3.5 | 4.0 | 4.0 | 4.0 |
[4.5, 5.0) | 2660.0 | 4.500000 | 0.000000 | 4.5 | 4.5 | 4.5 | 4.5 | 4.5 |
sns.countplot(x='paid',hue='rating_level',data=app)
不管是免费的还是收费的app 评分的分布主要分布在 2.5~5分之间 最多的是 2.5~4.5 其次是4.5~5.0
APP的大小和用户评分之间有关系吗
q4=['user_rating','price','size_mb']
app[q4].corr()
'''user_rating price size_mb
user_rating 1.000000 0.073237 0.066160
price 0.073237 1.000000 0.314386
size_mb 0.066160 0.314386 1.000000
'''
sns.heatmap(app[q4].corr())
#热力图,展现变量之间两两之间关系的强弱
#业务解答:大小价格都不和评分没有直接关系,但是价格和大小之间有正相关关系# 计算相关 使用的是皮尔逊相关系数 在pandas里 corr就是算皮尔逊api
# 皮尔逊相关系数 -1~1之间 >0 正相关 <0负相关 =0不相关
#>0.3 有相关性 #如果>0.5 显著相关
app的大小和 价格 有一定关系 ,app的大小和评分是没有关系的
app store 探索分析
seaborn 画图
实际上是对matplotlib的封装
可以快速画图,api封装的比matplotlib要友好
sns.relplot(x="prime_genre", y="user_rating",kind='line', data=app) #折线图
sns.distplot(app2['price']) # sns.distplot 绘制直方图
sns.boxplot(x = 'price',y='prime_genre',data = app1[app1['paid']==1]) #箱线图
sns.scatterplot(x='price',y='user_rating',data=app1) 散点图
sns.barplot(x='prime_genre',y='user_rating',hue='paid',data=app5) 带对比的柱状图 对比字段通过hue传入
sns.countplot(y='prime_genre',hue='paid',data=app,order=app['prime_genre'].value_counts().index) 带计数对比功能的柱状图
sns.heatmap(app[q4].corr()) #热力图
分析思路
分析价格
先desbribe()
可以对价格分箱
看价格和类别之间关系 对类别分组查看价格的分布
评分和价格之间关系 对评价分组查看价格的分布
计算不同特征之间的皮尔逊相关系数
案例 APP Store 数据分析相关推荐
- 重磅推出开发者计划、App Store,赛灵思普及自适应计算的一大步
得开发者得天下.尤其随着AI技术落地趋势加剧,其中大部分创新来自软件应用,市场对软件开发者有着极大需求.因此,无论是互联网公司还是传统的IT厂商都在尝试将开发者沉淀到自己的平台. 作为FPGA的开创者 ...
- 盘它:上线 2 个月碾压微信、抖音,音遇登顶 App Store 榜幕后的数据真相
在万物互联的大数据时代,伴随着科技变革和产业变革的浪潮,有寒冬凛冽的凋亡,也有光芒四射的新生. 音乐+社交+游戏的巧妙融合,诞生了一款爆款音乐社交产品--音遇,上线不久,就获得了傲人的数据反馈,一跃至 ...
- 出海买量难,游戏类产品如何利用App Store突围?
近年来,在疫情的影响下,海外市场用户对游戏的需求呈上升趋势,游戏市场仍处于持续扩张态势,而广告主们买量渠道繁多,回报却差强人意,究其原因主要是买量渠道受隐私政策影响,导致获客成本上扬. 得益于 App ...
- 数据科学项目:适用于App Store和Google Play的有利可图的应用配置文件
At Dataquest, we strongly advocate portfolio projects as a means of getting a first data science job ...
- Xcode11 上传苹果卡在Authenticating with the iTunes store 或者transpoter上传卡在正在验证 APP - 正在通过App Store进行认证
目前2020年12月份再用的时候,更新了transpoter,已经完全可以了,以下方法已不管用 这里直接借鉴网上案例我自己试成功的方法, Xcode11后,会移除自带的transpoter,我们需要自 ...
- iphone电压测试软件,App Store 上的“ECG Test Pro”
超过1000份真实患者的异常静态心电图案例,供医学院学生或老师作为心电学习的辅助数据. > 医学生或实习生,可通过这个应用学习各种各样的心电病例 > 医学院老师,可把这个应用作为教学素材, ...
- 钉钉在线求饶?五星分期付款?爬取钉钉App Store真实评价数据并分析
一.前言 最近钉钉火了,因为疫情影响,钉钉被教育部选为给学生用来在线上网课的平台,本以为自己因为业务过硬得到官方的认可,是2020上天选中的宠鹅,万万没想到到由于小学生不爽被占用寒假时间上课,于是集体 ...
- 苹果涉嫌利用App Store打压屏幕时间应用竞争对手 已被投诉至欧盟
[TechWeb]4月28日消息,据国外媒体报道,苹果在上周了结了与高通之间持续了两年的法律大战,但一山方过一山拦,在那之后其又陷入了多起诉讼之中,先是被纽约一名18岁的小伙告上法庭,指控苹果利用面部 ...
- 腾讯用微信、QQ 把微视送上了 App Store 第一 | 畅言
最近几天,很多人在发朋友圈的时候,都能看到一个"用微视拍摄"的推广.与此同时,腾讯微视也开始大面积地,在腾讯视频独家播出的综艺节目中大量曝光. 如此大力度的推广,让微视飞快地冲上了 ...
最新文章
- python urllib.request 爬虫 数据处理-python爬虫 urllib模块url编码处理
- python第三方库文件传输助手_python实现文件助手中查看微信撤回消息
- Xcode自带工具symbolicatecrash解析Crash文件
- outlook搜索不到历史邮件内容
- 牛客挑战赛48E-速度即转发【带修莫队,分块】
- 剑指Offer - 面试题45. 把数组排成最小的数(字符串排序)
- 微信气泡主题设置_微信猫和老鼠主题怎么弄?猫和老鼠聊天气泡主题设置教程...
- 95-150-080-源码-Sink-StreamingFileSinkBucketingSink
- MyBatis集成SpringMVC
- mysql sid是什么_数据库名、数据库实例、全局数据库名、服务名、SID等的区别
- 蓝牙运动手环app开发方案
- uploadify java 下载_java uploadify 实现文件上传
- 信号(signal,kill,raise)
- 电脑接口自动测试软件,通过多种接口总线与计算机实现自动检定/校准测试系统的设计...
- Summit Wireless全新低成本空间音频模块现已震撼上市
- PCBA方案设计——医疗器械认证血氧仪方案
- 时间和日期函数 now 的作用
- audio 监听播放进度
- patch 命令用法详解
- 3年Java开发百度面试篇
热门文章
- 计量经济学计算机输出结果,(财务知识)计量经济学计算机作业(7页)-原创力文档...
- 负整数的整除与取余运算
- 在OpenCV里实现自适应阈值分割
- 介绍计算机硬件的英语作文带翻译,介绍光盘行动的英语作文带翻译
- 论韩剧如何影响一个人
- 高斯函数(Gaussian function)的详细分析
- Cadence/Allegro学习笔记
- mainui类JAVA什么意思_main ui是什么意思
- java 事务嵌套_嵌套事务回滚
- 回归预测 | MATLAB实现SVR(支持向量机回归)fitrsvm参数设定