- Appium原理及版本变化细节
萧十一郎456
Appium原理小结Api接口调用selenium的接口,android底层用android的instrumentation(API2.3+通过绑定另外一个独立的selendroid项目来实现的)、uiautomator接口(API4.2+),ios底层用ios的uiautomation接口。Client/ServerArchitectureAppiumserver是用node.js写的,安装no
- Dex、Smali、Class、Java、Jar之间的相互转换
布道课堂
Dex、Smali、Class、Java、Jar之间的相互转换-分析Android底层代码工具工具作用javacjava------>classddxclass------>dexbaksmalidex------>smalismalismali------>dexdex2jardex------>jar(class的压缩包)apktoolapk------>smaliAndroid源代码从编译到
- android中MediaCodec类解析
刘泊然
音视频安卓开发安卓开发音视频
转载自:https://www.jianshu.com/p/14da1baaf08f简介MediaCodec类可以获取底层媒体编码/解码库,是Android底层多媒体支持库的一部分(一般和MediaExtractor、MediaSync、MediaMuxer、MediaCrypto、MediaDrm、Image、Surface、AudioTrack搭配使用)。MediaCodecBuffers流宽
- Android篇
CJYMars
Android篇1.性能测试Android性能测试分为两类:1、一类为rom版本(系统)的性能测试2、一类为应用app的性能测试Android的app性能测试包括的测试项比如:1、资源消耗2、内存泄露3、电量功耗4、耗时5、网络流量消耗6、移动终端相关资源利用率7、帧率8、渲染等等....工具:(工具的原理都是基于调用android底层的一些api来获取到测试所用到的值)GT等测试方法:1、设计场
- 学习鸿蒙先解决这几个是关键问题~
OpenHarmony_小贾
HarmonyOSOpenHarmony移动开发学习harmonyos华为移动开发openharmony鸿蒙
HarmonyOS是最近最火的操作系统,HarmonyOS宣布删除Android代码之后,正式向世界上第三大操作系统有迈进了一步,HarmonyOS前期为了完成从Android到HarmonyOS的过渡,在设计之初HarmonyOS采用了双框架架构设计。从图中可以看出无论HarmonyOS还是Android底层都是Linux内核,在Linux内核的上一层,还有硬件抽象层,从这一层开始将Harmon
- Linux驱动开发简易流程
苏柘_level6
linux驱动开发
推荐视频:正点原子【第四期】手把手教你学Linux之驱动开发篇小智-学长嵌入式Linux&Android底层开发入门教程能力矩阵基础能力矩阵熟悉c/c++、熟悉数据结构熟悉linux系统,Shell脚本,Makefile/cmake/mk文件IO、多线程、竞争、并发、阻塞、同步、中断、网络熟悉调试工具,gdb、gdbserver、tcpdump行业能力矩阵平台相关:海思/君正/安霸MTK/NXP/
- Android.mk之编译生成可执行文件
銨靜菂等芐紶
Linuxandroidlinux
转载自品略图书馆http://www.pinlue.com/article/2019/11/1122/279786016747.htmlAndroid.mk之编译生成可执行文件一、简介对于学过Linux内核的来说,想要去编译一个文件,生成可执行文件也好,打包成库也罢,都是使用Makefile来管理编译的。那么对于Android底层开发来讲,也是需要把咱们写的代码,编译成可执行文件或者其他可用的文件
- 如何通过EventChannel实现Flutter与原生平台之间的双向通信
sg_knight
FlutterflutterAndroid前端EventChannel双向通信
本文将介绍如何通过EventChannel实现Flutter与原生平台之间的双向通信。如果想了解如何通过MethodChannel实现Flutter调用Android原生平台的方法,可以参考上篇文章。Flutter如何实现与Android底层平台通信,调用底层Android原生方法https://sgknight.blog.csdn.net/article/details/1349258891、什
- Android APP性能及专项测试
博闻强记
APPAPPAndroid性能测试
Android篇1.性能测试Android性能测试分为两类:1、一类为rom版本(系统)的性能测试2、一类为应用app的性能测试Android的app性能测试包括的测试项比如:1、资源消耗2、内存泄露3、电量功耗4、耗时5、网络流量消耗6、移动终端相关资源利用率7、帧率8、渲染等等....工具:(工具的原理都是基于调用android底层的一些api来获取到测试所用到的值)GT等测试方法:1、设计场
- TextView测量文字长度、加粗、删除线、下划线
ffengz
Android日常总结androidtextview字体
测量文字的长度一定要记着post()与主线程直接获取的区别,View的dispatchAttachedToWindow()方法调用才会执行runnable中的action,而这个方法设计Android底层UI逻辑处理。反正记住,post方法会在View的performMeaure()之后掉用。textView.post(newRunnable(){@Overridepublicvoidrun(){
- 嵌入式,单片机,ARM,Android底层开发之间的关系
鹰眼2号
嵌入式
很多人在问我们学这些东西能干什么,这些东西有什么关系,我该学那个?想知道这些首先得知道这些东西都试试很么。单片机(Microcontrollers,亦称MCU)包括了CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。ARM是一家公司,ARM是一种架构,ARM是一系列使用ARM核心芯片的
- 探索嵌入式开发领域:单片机、ARM、Android底层的紧密联系
单片机一哥
单片机51单片机
作为一个曾编写ARM教程和参与Android产品开发的专家,我发现单片机、ARM、嵌入式开发和Android底层开发之间存在紧密的联系。对于那些希望在嵌入式开发领域发展的人来说,了解这些领域的知识至关重要。为了帮助你更好地学习这些内容,我总结了一些嵌入式资料,你可以在视频结尾处找到。在Android底层开发中,底层涵盖了内核接口以下的程序,包括AndroidHAL驱动、Android框架和Andr
- Android底层驱动开发(九)
来自东南亚的皮皮虾
驱动开发驱动开发
目录一、CPU、MPU、MCU、SOC的概念与区别1、概念2、区别二、总线1、总线概念2、详解UART、I2C、SPI常用通信协议一、CPU、MPU、MCU、SOC的概念与区别1、概念1.1CPU(CentralProcessingUnit)CPU(CentralProcessingUnit),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总
- 单片机、ARM、嵌入式开发、Android 底层开发有什么关系?
枪哥玩转嵌入式
单片机编程嵌入式单片机51单片机
单片机、ARM、嵌入式开发、Android底层开发有什么关系?从我目前的见识来看:单片机是个系统(比如:51、AVR、PLC...),其中包含了去除了输入输出之外的运算器、控制器、存储器,我们用程序可以非常直观的控制引脚电平的高低。最近很多小伙伴找我,说想要一些ARM的资料,然后我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「ARM资料从专业入门到高级教程+工具包」,点个关注,全部无偿共
- android aidl流程
泓汉
aidl为实现跨进程通信,android提供的简单方案对于跨进程,我们都知道android底层是linux,所以进程管理也是linux系统的那一套,即进程之间是相互独立的互不干扰的,数据是独享的,所以要进行进程间的通信也是通过老掉牙的方案Binder机制去搞,而android的AIDL底层也是基于Binder机制来搞的,只不过封装的比较好。支持的数据类型,如下java的基本类型,list(内部都是
- Android底层驱动开发(三)
来自东南亚的皮皮虾
驱动开发android
目录一、Android系统架构图二、Android源码目录解析Android源码目录结构如下:Android系统结构与源码的对应关系:三、设备文件系统目录解析Android设备文件夹结构sysfs文件系统设备文件节点基础操作四、Android启动过程Android启动过程及可执行文件bin的组成和打包一、Android系统架构图http://t.csdn.cn/Ja8ulhttp://t.csdn
- (转)8位bmp图片格式详细说明文档
chengg0769
其他语言BMP格式BMP文件
来自:天苍野茫的CSDN博客:http://blog.csdn.net/ichen86/article/details/50534197目前我供职的公司是一家与指纹有关的公司,指纹模组抓取到的图像原始数据一般是8位的,算法开发时也是针对8位图,所以我需要将Android底层抓到的原始数据转换为8位bmp图并保存,但我不知道bmp的相关协议,找到后却发现绝大部分都是针对24位以上的真彩bmp图,并不
- 事件分发源码,Android性能优化之启动优化实战篇,终获offer
A小小开发者
程序员android
Android系统庞大且错综复杂,今天小编将带领大家初探Android系统整体架构,一窥其全貌。引言本文作为Android系统架构的开篇,起到提纲挈领的作用,从系统整体架构角度概要讲解Android系统的核心技术点,带领大家初探Android系统全貌以及内部运作机制。虽然Android系统非常庞大且错综复杂,需要具备全面的技术栈,但整体架构设计清晰。Android底层内核空间以LinuxKerne
- Android_Binder原理分析
刘小厨
Binder是什么?Binder可以实现进程与进程之间的通信(IPC),Binder是Android底层系统的一个特色了,它很好地解决了进程间通讯的问题。image可能很多小伙伴对Binder感觉有点儿陌生,但是Binder在Android系统中无处不在,比如:媒体的播放音视频捕获传感器使用startActivity()/startService()等...Binder是Android独有的跨线程
- Android底层驱动开发(四)
来自东南亚的皮皮虾
驱动开发java开发语言
目录一、Android源码编译编译原理编译组成原生Android编译二、Makefile文件三、Android.mk文件四、Android.bp文件五、Android公码和私码HLOS(公码)non-HLOS(私码)补充:http://t.csdn.cn/ktjxzhttp://t.csdn.cn/ktjxz一、Android源码编译编译原理编译:将高级语言翻译成汇编语言或机器语言的过程,编译的本
- Android底层摸索改BUG(二):Android系统移除预置APP
林林要一直努力
bugandroidandroidstudio开发语言java
首先我先提供以下博主博文,对相关知识点可以提供理解、解决、思考的Android系统如何预装第三方应用以及常见问题汇集androidAndroid.mk属性说明及预置系统app操作说明系Android中去除系统原生apk的方法取消预置APK方法一:其实就是上面的链接3,但是这个方法有局限性,比较适用于单个Android系统项目,直接对Android.mk中的相关APK代码进行删除,(下图来源链接3)
- Android底层摸索改BUG(一):Android系统状态栏显示不下Wifi图标
林林要一直努力
bug学习
这是我入职的第一个BUG,头疼,隔壁实习生一周解决了,我多花了几天其中最大的原因就是我思考复杂了,在公司系统上,此BUG标题为:请确认Wifi优先级,状态栏Wifi被忽略BUG意思就是:当前安卓系统状态栏图标有显示尺寸的测量,如果比如需要显示8个图标,已经在状态栏绘制不下,则显示一个点表示省略,而不希望wifi被省略我思考了一下一直以为就是优先级问题,是不是Android底层状态栏有各个图标优先级
- Java内存管理机制 ————浅析原理
RosenYang
java内存管理机制内存泄漏内存溢出内存抖动:话术整理首先java的内存管理机制gc的垃圾回收机制,然后引出leakcanary,总分总的回答思路java内存模型划分imagec,c++主要就是系统鞥直接操作内存,android底层是linuxlinux的底层也是c或者c++java性能优化,内存+cup+gpu(图像渲染)java程序执行过程()image堆内存:new(对象)(强引用)成员变量
- Android 底层新增按键系统上层适配详解
峥嵘life
androidAndroid系统android
Android底层新增按键系统上层适配详解文章目录Android底层新增按键系统上层适配详解一、前言二、网上的一个参考三、按键基本准备和信息查看四、Android13上framework上的实际修改1、native/cpp相关文件修改(1)头文件定义按键键值字符串和键值数值(2)按键处理代码InputEventLabels.cpp2、Java相关文件修改(1)resattrs资源文件定义键值字符串
- Android多媒体--MediaCodec api
APersonOnTheRoad
音视频
http://www.cnblogs.com/roger-yu/p/5635494.htmlMediaCodecpublicfinalclassMediaCodecextendsObjectJava.lang.Object→android.media.MediaCodecMediaCodec类可用于访问Android底层的媒体编解码器,也就是,编码器/解码器组件。它是Android底层多媒体支持基
- Android底层:通熟易懂的分析binder--2. binder进程通信协议及“记录链路”结构体
牛晓伟
前言binder的准备工作主要介绍了binder进程通信之前需要做的准备工作有哪些,既然binder准备工作做好了,那下一步就是通信了,在讲解通信之前,我希望先把通信的基础知识讲清楚,比如进程与driver层之间的通信协议是啥?binder_node,binder_ref,binder_thread,binder_proc这些东西到底都是啥?在通信过程中起啥作用?Binder,BinderProx
- Android底层:通熟易懂的分析binder--2. binder进程通信协议及“记录链路”结构体
niurenwo
androidandroidjava
前言binder的准备工作主要介绍了binder进程通信之前需要做的准备工作有哪些,既然binder准备工作做好了,那下一步就是通信了,在讲解通信之前,我希望先把通信的基础知识讲清楚,比如进程与driver层之间的通信协议是啥?binder_node,binder_ref,binder_thread,binder_proc这些东西到底都是啥?在通信过程中起啥作用?Binder,BinderProx
- android底层Input事件传递流程
爱炒饭
android笔记androidrom
在android事件分发机制一文中介绍了应用层Touch事件的分发,那么Touch事件从哪里来的呢?本文基于android9源码进行分析。一、IMS首先,触摸事件肯定需要驱动去接收,android是在/dev/input节点获取事件。由于WindowManagerService.java(后面简称WMS)负责界面窗口的管理,既然是屏幕事件那么肯定和WMS有关了,WMS是在SystemServer.
- Linux编程——内核模块
萝卜D大哥
LinuxFiRalinux智能硬件物联网
在FiRa的Android底层实现中,其IEEE802.15.4协议相关实现均作为内核模块实现,因此,本文简要介绍内核模块的相关定义,并节选相关FiRa实现内核模块的使用。1.Linux内核模块内核模块是Linux操作系统中比较独特的机制。模块本身不被编译进内核镜像,这就有效控制了内核的大小;模块一旦被加载,就和内核中的其他部分完全一样。Linux启动中在完成BIOS加载、读取MBR、BootLo
- android底层库包含哪些,Android的底层库libutils
山山笔记
android底层库包含哪些
第一部分libutils概述libutils是Android的底层库,这个库以C++实现,它提供的API也是C++的。Android的层次的C语言程序和库,大都基于libutils开发。libutils中的头文件如下所示:frameworks/base/include/utilslibutils的源文件:frameworks/base/libs/utilslibutils的库名称:libutils
- 矩阵求逆(JAVA)初等行变换
qiuwanchi
矩阵求逆(JAVA)
package gaodai.matrix;
import gaodai.determinant.DeterminantCalculation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 矩阵求逆(初等行变换)
* @author 邱万迟
*
- JDK timer
antlove
javajdkschedulecodetimer
1.java.util.Timer.schedule(TimerTask task, long delay):多长时间(毫秒)后执行任务
2.java.util.Timer.schedule(TimerTask task, Date time):设定某个时间执行任务
3.java.util.Timer.schedule(TimerTask task, long delay,longperiod
- JVM调优总结 -Xms -Xmx -Xmn -Xss
coder_xpf
jvm应用服务器
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:
java -Xmx
- JDBC连接数据库
Array_06
jdbc
package Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtil {
//完
- Unsupported major.minor version 51.0(jdk版本错误)
oloz
java
java.lang.UnsupportedClassVersionError: cn/support/cache/CacheType : Unsupported major.minor version 51.0 (unable to load class cn.support.cache.CacheType)
at org.apache.catalina.loader.WebappClassL
- 用多个线程处理1个List集合
362217990
多线程threadlist集合
昨天发了一个提问,启动5个线程将一个List中的内容,然后将5个线程的内容拼接起来,由于时间比较急迫,自己就写了一个Demo,希望对菜鸟有参考意义。。
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public c
- JSP简单访问数据库
香水浓
sqlmysqljsp
学习使用javaBean,代码很烂,仅为留个脚印
public class DBHelper {
private String driverName;
private String url;
private String user;
private String password;
private Connection connection;
privat
- Flex4中使用组件添加柱状图、饼状图等图表
AdyZhang
Flex
1.添加一个最简单的柱状图
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<?xml version=
"1.0"&n
- Android 5.0 - ProgressBar 进度条无法展示到按钮的前面
aijuans
android
在低于SDK < 21 的版本中,ProgressBar 可以展示到按钮前面,并且为之在按钮的中间,但是切换到android 5.0后进度条ProgressBar 展示顺序变化了,按钮再前面,ProgressBar 在后面了我的xml配置文件如下:
[html]
view plain
copy
<RelativeLa
- 查询汇总的sql
baalwolf
sql
select list.listname, list.createtime,listcount from dream_list as list , (select listid,count(listid) as listcount from dream_list_user group by listid order by count(
- Linux du命令和df命令区别
BigBird2012
linux
1,两者区别
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
- AngularJS中的$apply,用还是不用?
bijian1013
JavaScriptAngularJS$apply
在AngularJS开发中,何时应该调用$scope.$apply(),何时不应该调用。下面我们透彻地解释这个问题。
但是首先,让我们把$apply转换成一种简化的形式。
scope.$apply就像一个懒惰的工人。它需要按照命
- [Zookeeper学习笔记十]Zookeeper源代码分析之ClientCnxn数据序列化和反序列化
bit1129
zookeeper
ClientCnxn是Zookeeper客户端和Zookeeper服务器端进行通信和事件通知处理的主要类,它内部包含两个类,1. SendThread 2. EventThread, SendThread负责客户端和服务器端的数据通信,也包括事件信息的传输,EventThread主要在客户端回调注册的Watchers进行通知处理
ClientCnxn构造方法
&
- 【Java命令一】jmap
bit1129
Java命令
jmap命令的用法:
[hadoop@hadoop sbin]$ jmap
Usage:
jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a
- Apache 服务器安全防护及实战
ronin47
此文转自IBM.
Apache 服务简介
Web 服务器也称为 WWW 服务器或 HTTP 服务器 (HTTP Server),它是 Internet 上最常见也是使用最频繁的服务器之一,Web 服务器能够为用户提供网页浏览、论坛访问等等服务。
由于用户在通过 Web 浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而 Web 在 Internet 上一推出就得到
- unity 3d实例化位置出现布置?
brotherlamp
unity教程unityunity资料unity视频unity自学
问:unity 3d实例化位置出现布置?
答:实例化的同时就可以指定被实例化的物体的位置,即 position
Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
这样你不需要再用Transform.Position了,
如果你省略了第二个参数(
- 《重构,改善现有代码的设计》第八章 Duplicate Observed Data
bylijinnan
java重构
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusE
- struts2更改struts.xml配置目录
chiangfai
struts.xml
struts2默认是读取classes目录下的配置文件,要更改配置文件目录,比如放在WEB-INF下,路径应该写成../struts.xml(非/WEB-INF/struts.xml)
web.xml文件修改如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class&g
- redis做缓存时的一点优化
chenchao051
redishadooppipeline
最近集群上有个job,其中需要短时间内频繁访问缓存,大概7亿多次。我这边的缓存是使用redis来做的,问题就来了。
首先,redis中存的是普通kv,没有考虑使用hash等解结构,那么以为着这个job需要访问7亿多次redis,导致效率低,且出现很多redi
- mysql导出数据不输出标题行
daizj
mysql数据导出去掉第一行去掉标题
当想使用数据库中的某些数据,想将其导入到文件中,而想去掉第一行的标题是可以加上-N参数
如通过下面命令导出数据:
mysql -uuserName -ppasswd -hhost -Pport -Ddatabase -e " select * from tableName" > exportResult.txt
结果为:
studentid
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
先下载PHPEXCEL类文件,放在class目录下面,然后新建一个index.php文件,内容如下
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('
- 爱情格言
dcj3sjt126com
格言
1) I love you not because of who you are, but because of who I am when I am with you. 我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。 2) No man or woman is worth your tears, and the one who is, won‘t
- 转 Activity 详解——Activity文档翻译
e200702084
androidUIsqlite配置管理网络应用
activity 展现在用户面前的经常是全屏窗口,你也可以将 activity 作为浮动窗口来使用(使用设置了 windowIsFloating 的主题),或者嵌入到其他的 activity (使用 ActivityGroup )中。 当用户离开 activity 时你可以在 onPause() 进行相应的操作 。更重要的是,用户做的任何改变都应该在该点上提交 ( 经常提交到 ContentPro
- win7安装MongoDB服务
geeksun
mongodb
1. 下载MongoDB的windows版本:mongodb-win32-x86_64-2008plus-ssl-3.0.4.zip,Linux版本也在这里下载,下载地址: http://www.mongodb.org/downloads
2. 解压MongoDB在D:\server\mongodb, 在D:\server\mongodb下创建d
- Javascript魔法方法:__defineGetter__,__defineSetter__
hongtoushizi
js
转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/
在javascript的类中,可以用defineGetter和defineSetter_控制成员变量的Get和Set行为
例如,在一个图书类中,我们自动为Book加上书名符号:
function Book(name){
- 错误的日期格式可能导致走nginx proxy cache时不能进行304响应
jinnianshilongnian
cache
昨天在整合某些系统的nginx配置时,出现了当使用nginx cache时无法返回304响应的情况,出问题的响应头: Content-Type:text/html; charset=gb2312 Date:Mon, 05 Jan 2015 01:58:05 GMT Expires:Mon , 05 Jan 15 02:03:00 GMT Last-Modified:Mon, 05
- 数据源架构模式之行数据入口
home198979
PHP架构行数据入口
注:看不懂的请勿踩,此文章非针对java,java爱好者可直接略过。
一、概念
行数据入口(Row Data Gateway):充当数据源中单条记录入口的对象,每行一个实例。
二、简单实现行数据入口
为了方便理解,还是先简单实现:
<?php
/**
* 行数据入口类
*/
class OrderGateway {
/*定义元数
- Linux各个目录的作用及内容
pda158
linux脚本
1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于
Windows
操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件。 2)/bin /bin 目录又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要
linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。常用的命令有:cp、d
- ubuntu12.04上编译openjdk7
ol_beta
HotSpotjvmjdkOpenJDK
获取源码
从openjdk代码仓库获取(比较慢)
安装mercurial Mercurial是一个版本管理工具。 sudo apt-get install mercurial
将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个: [extensions] forest=/home/lichengwu/hgforest-crew/forest.py fe
- 将数据库字段转换成设计文档所需的字段
vipbooks
设计模式工作正则表达式
哈哈,出差这么久终于回来了,回家的感觉真好!
PowerDesigner的物理数据库一出来,设计文档中要改的字段就多得不计其数,如果要把PowerDesigner中的字段一个个Copy到设计文档中,那将会是一件非常痛苦的事情。