杨中科板的代码生成器源码板

Form1.Designer.cs

namespace itcastcoder
{
    partial class Form1
    {
        /// <summary>
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// 清理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows 窗体设计器生成的代码

        /// <summary>
        /// 设计器支持所需的方法 - 不要
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.label1 = new System.Windows.Forms.Label();
            this.txtConnStr = new System.Windows.Forms.TextBox();
            this.clbTables = new System.Windows.Forms.CheckedListBox();
            this.cbGenerateDAL = new System.Windows.Forms.CheckBox();
            this.checkBox2 = new System.Windows.Forms.CheckBox();
            this.cbGenerateBLL = new System.Windows.Forms.CheckBox();
            this.label2 = new System.Windows.Forms.Label();
            this.cbGenerateModel = new System.Windows.Forms.CheckBox();
            this.label3 = new System.Windows.Forms.Label();
            this.label4 = new System.Windows.Forms.Label();
            this.txtNameSpace = new System.Windows.Forms.TextBox();
            this.txtOutPutDir = new System.Windows.Forms.TextBox();
            this.folderBrowserDlOutputDir = new System.Windows.Forms.FolderBrowserDialog();
            this.btnBrowseOutputDir = new System.Windows.Forms.Button();
            this.btnGo = new System.Windows.Forms.Button();
            this.txtLog = new System.Windows.Forms.TextBox();
            this.btnConnect = new System.Windows.Forms.Button();
            this.SuspendLayout();
            //
            // label1
            //
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(38, 26);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(65, 12);
            this.label1.TabIndex = 0;
            this.label1.Text = "连接字符串";
            //
            // txtConnStr
            //
            this.txtConnStr.Location = new System.Drawing.Point(123, 23);
            this.txtConnStr.Name = "txtConnStr";
            this.txtConnStr.Size = new System.Drawing.Size(413, 21);
            this.txtConnStr.TabIndex = 1;
            this.txtConnStr.Text = "Data Source=stylee-pc\\mssqlserver2008;Initial Catalog=CallCenter;Integrated Secur" +
                "ity=True";
            //
            // clbTables
            //
            this.clbTables.FormattingEnabled = true;
            this.clbTables.Location = new System.Drawing.Point(12, 69);
            this.clbTables.Name = "clbTables";
            this.clbTables.Size = new System.Drawing.Size(134, 260);
            this.clbTables.TabIndex = 3;
            //
            // cbGenerateDAL
            //
            this.cbGenerateDAL.AutoSize = true;
            this.cbGenerateDAL.Checked = true;
            this.cbGenerateDAL.CheckState = System.Windows.Forms.CheckState.Checked;
            this.cbGenerateDAL.Location = new System.Drawing.Point(212, 79);
            this.cbGenerateDAL.Name = "cbGenerateDAL";
            this.cbGenerateDAL.Size = new System.Drawing.Size(66, 16);
            this.cbGenerateDAL.TabIndex = 4;
            this.cbGenerateDAL.Text = "生成DAL";
            this.cbGenerateDAL.UseVisualStyleBackColor = true;
            //
            // checkBox2
            //
            this.checkBox2.AutoSize = true;
            this.checkBox2.Checked = true;
            this.checkBox2.CheckState = System.Windows.Forms.CheckState.Checked;
            this.checkBox2.Location = new System.Drawing.Point(428, 79);
            this.checkBox2.Name = "checkBox2";
            this.checkBox2.Size = new System.Drawing.Size(78, 16);
            this.checkBox2.TabIndex = 4;
            this.checkBox2.Text = "checkBox1";
            this.checkBox2.UseVisualStyleBackColor = true;
            //
            // cbGenerateBLL
            //
            this.cbGenerateBLL.AutoSize = true;
            this.cbGenerateBLL.Checked = true;
            this.cbGenerateBLL.CheckState = System.Windows.Forms.CheckState.Checked;
            this.cbGenerateBLL.Location = new System.Drawing.Point(317, 79);
            this.cbGenerateBLL.Name = "cbGenerateBLL";
            this.cbGenerateBLL.Size = new System.Drawing.Size(66, 16);
            this.cbGenerateBLL.TabIndex = 4;
            this.cbGenerateBLL.Text = "生成BLL";
            this.cbGenerateBLL.UseVisualStyleBackColor = true;
            //
            // label2
            //
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(38, 26);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(65, 12);
            this.label2.TabIndex = 0;
            this.label2.Text = "连接字符串";
            //
            // cbGenerateModel
            //
            this.cbGenerateModel.AutoSize = true;
            this.cbGenerateModel.Checked = true;
            this.cbGenerateModel.CheckState = System.Windows.Forms.CheckState.Checked;
            this.cbGenerateModel.Location = new System.Drawing.Point(428, 79);
            this.cbGenerateModel.Name = "cbGenerateModel";
            this.cbGenerateModel.Size = new System.Drawing.Size(78, 16);
            this.cbGenerateModel.TabIndex = 4;
            this.cbGenerateModel.Text = "生成Model";
            this.cbGenerateModel.UseVisualStyleBackColor = true;
            //
            // label3
            //
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(167, 123);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(53, 12);
            this.label3.TabIndex = 0;
            this.label3.Text = "命名空间";
            //
            // label4
            //
            this.label4.AutoSize = true;
            this.label4.Location = new System.Drawing.Point(167, 157);
            this.label4.Name = "label4";
            this.label4.Size = new System.Drawing.Size(53, 12);
            this.label4.TabIndex = 0;
            this.label4.Text = "输出路径";
            //
            // txtNameSpace
            //
            this.txtNameSpace.Location = new System.Drawing.Point(226, 120);
            this.txtNameSpace.Name = "txtNameSpace";
            this.txtNameSpace.Size = new System.Drawing.Size(378, 21);
            this.txtNameSpace.TabIndex = 1;
            //
            // txtOutPutDir
            //
            this.txtOutPutDir.Location = new System.Drawing.Point(226, 154);
            this.txtOutPutDir.Name = "txtOutPutDir";
            this.txtOutPutDir.Size = new System.Drawing.Size(378, 21);
            this.txtOutPutDir.TabIndex = 1;
            //
            // btnBrowseOutputDir
            //
            this.btnBrowseOutputDir.Location = new System.Drawing.Point(610, 152);
            this.btnBrowseOutputDir.Name = "btnBrowseOutputDir";
            this.btnBrowseOutputDir.Size = new System.Drawing.Size(33, 23);
            this.btnBrowseOutputDir.TabIndex = 2;
            this.btnBrowseOutputDir.Text = "...";
            this.btnBrowseOutputDir.UseVisualStyleBackColor = true;
            this.btnBrowseOutputDir.Click += new System.EventHandler(this.btnBrowseOutputDir_Click);
            //
            // btnGo
            //
            this.btnGo.Location = new System.Drawing.Point(152, 181);
            this.btnGo.Name = "btnGo";
            this.btnGo.Size = new System.Drawing.Size(75, 23);
            this.btnGo.TabIndex = 2;
            this.btnGo.Text = "生成";
            this.btnGo.UseVisualStyleBackColor = true;
            this.btnGo.Click += new System.EventHandler(this.btnGo_Click);
            //
            // txtLog
            //
            this.txtLog.Location = new System.Drawing.Point(169, 210);
            this.txtLog.Multiline = true;
            this.txtLog.Name = "txtLog";
            this.txtLog.Size = new System.Drawing.Size(435, 119);
            this.txtLog.TabIndex = 1;
            //
            // btnConnect
            //
            this.btnConnect.Location = new System.Drawing.Point(568, 21);
            this.btnConnect.Name = "btnConnect";
            this.btnConnect.Size = new System.Drawing.Size(75, 23);
            this.btnConnect.TabIndex = 2;
            this.btnConnect.Text = "连接";
            this.btnConnect.UseVisualStyleBackColor = true;
            this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click);
            //
            // Form1
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(688, 395);
            this.Controls.Add(this.cbGenerateBLL);
            this.Controls.Add(this.cbGenerateModel);
            this.Controls.Add(this.checkBox2);
            this.Controls.Add(this.cbGenerateDAL);
            this.Controls.Add(this.clbTables);
            this.Controls.Add(this.btnBrowseOutputDir);
            this.Controls.Add(this.btnGo);
            this.Controls.Add(this.btnConnect);
            this.Controls.Add(this.label4);
            this.Controls.Add(this.label3);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.txtLog);
            this.Controls.Add(this.txtOutPutDir);
            this.Controls.Add(this.txtNameSpace);
            this.Controls.Add(this.txtConnStr);
            this.Controls.Add(this.label1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.Load += new System.EventHandler(this.Form1_Load);
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.TextBox txtConnStr;
        private System.Windows.Forms.CheckedListBox clbTables;
        private System.Windows.Forms.CheckBox cbGenerateDAL;
        private System.Windows.Forms.CheckBox checkBox2;
        private System.Windows.Forms.CheckBox cbGenerateBLL;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.CheckBox cbGenerateModel;
        private System.Windows.Forms.Label label3;
        private System.Windows.Forms.Label label4;
        private System.Windows.Forms.TextBox txtNameSpace;
        private System.Windows.Forms.TextBox txtOutPutDir;
        private System.Windows.Forms.FolderBrowserDialog folderBrowserDlOutputDir;
        private System.Windows.Forms.Button btnBrowseOutputDir;
        private System.Windows.Forms.Button btnGo;
        private System.Windows.Forms.TextBox txtLog;
        private System.Windows.Forms.Button btnConnect;
    }
}

From1.Designer.cs

Generator.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.IO;
using itcastcoder;
namespace ItcastCoder
{
    class Generator
    {
        //在文本框中输入连接字符串
        public static DataTable ExecuteDataTable(string connstr, string cmdText,
            params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = cmdText;
                    cmd.Parameters.AddRange(parameters);
                    using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
                    {
                        DataTable dt = new DataTable();
                        adapter.Fill(dt);
                        return dt;
                    }
                }
            }
        }
        //选择数据类型
        private static Type GetTypeByDBType(string dbtype)
        {
            switch (dbtype.ToLower())
            {
                case "int":
                    return typeof(int);
                case "bigint":
                    return typeof(long);
                case "nvarchar":
                case "char":
                case "nchar":
                case "varchar":
                    return typeof(string);
                case "bit":
                    return typeof(bool);
                case "datetime":
                    return typeof(DateTime);
                case "uniqueidentifier":
                    return typeof(Guid);
                default:
                    return typeof(object);
            }
        }
        //创建model层
        public static void GenerateModel(string tablename, GeneratorArgs args)
        {
            DataTable dtCols = ExecuteDataTable(args.ConnectionString,
                "select * from INFORMATION_SCHEMA.COLUMNS where [email protected]",
                        new SqlParameter("tablename", tablename));
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("using System;");
            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.Linq;");
            sb.AppendLine("using System.Text;");
            sb.AppendLine("namespace " + args.RootNamespace + ".Model");
            sb.AppendLine("{");
            sb.AppendLine("class " + tablename);
            sb.AppendLine("{");
            foreach (DataRow row in dtCols.Rows)
            {
                string colName = Convert.ToString(row["Column_Name"]);
                string dataType = Convert.ToString(row["Data_Type"]);
                sb.AppendLine("public " + GetTypeByDBType(dataType)
                    + " " + colName + " { get; set; }");
            }
            sb.AppendLine("}");
            sb.AppendLine("}");
            string modelDir = Path.Combine(args.OutputDir, "Model");
            string modelFile =
                Path.Combine(modelDir, tablename + ".cs");
            Directory.CreateDirectory(modelDir);
            File.WriteAllText(modelFile, sb.ToString());
        }
        private static string[] GetCols(DataTable dtCols)
        {
            List<string> list = new List<string>();
            foreach (DataRow row in dtCols.Rows)
            {
                string colName = Convert.ToString(row["Column_Name"]);
                list.Add(colName);
            }
            return list.ToArray();
        }
        //移除Id
        private static string[] GetColsWithoutId(DataTable dtCols)
        {
            List<string> list = new List<string>();
            list.AddRange(GetCols(dtCols));
            foreach (string colname in list.ToArray())
            {
                if (colname.Equals("id",
                    StringComparison.CurrentCultureIgnoreCase))
                {
                    list.Remove(colname);
                }
            }
            return list.ToArray();
        }
        //创建DAL层
        public static void GenerateDAL(string tablename, GeneratorArgs args)
        {
            DataTable dtCols = ExecuteDataTable(args.ConnectionString,
                "select * from INFORMATION_SCHEMA.COLUMNS where [email protected]",
                        new SqlParameter("tablename", tablename));
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("using System;");
            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.Linq;");
            sb.AppendLine("using System.Text;");
            sb.AppendLine("using " + args.RootNamespace + ".Model;");
            sb.AppendLine("using System.Data.SqlClient;");
            sb.AppendLine("using System.Data;");

            sb.AppendLine("namespace " + args.RootNamespace + ".DAL");
            sb.AppendLine("{");
            sb.AppendLine("class " + tablename + "DAL");
            sb.AppendLine("{");
            {
                sb.AppendLine("public int AddNew(" + tablename + " model){");
                string[] cols = GetColsWithoutId(dtCols);
                string[] colParams = (from col in cols
                                      select "@" + col).ToArray();
                sb.AppendLine("string sql = \"insert into " + tablename +
                    "(" + string.Join(",", cols) +
                    ") output inserted.id values(" +
                    string.Join(",", colParams) + ")\";");
                sb.AppendLine("int id = (int)SqlHelper.ExecuteScalar(sql");
                foreach (string col in cols)
                {
                    sb.AppendLine(",new SqlParameter(\"" + col + "\", model." + col + ")");
                }
                sb.AppendLine(");");
                sb.AppendLine("return id;");
                sb.AppendLine("}");
            }
            {
                sb.AppendLine("public bool Update(" + tablename + " model){");
                string[] cols = GetColsWithoutId(dtCols);
                string[] colParams = (from col in cols
                                      select col + "[email protected]" + col).ToArray();
                sb.AppendLine("string sql = \"update " + tablename + " set " +
                    string.Join(",", colParams) + " where [email protected]\";");
                sb.AppendLine("int rows = SqlHelper.ExecuteNonQuery(sql");
                foreach (string col in GetCols(dtCols))
                {
                    sb.AppendLine(",new SqlParameter(\"" + col + "\", model." + col + ")");
                }
                sb.AppendLine(");");
                sb.AppendLine("return rows > 0;}");
            }
            {
                sb.AppendLine("public bool Delete(int id){");
                sb.AppendLine("int rows = SqlHelper.ExecuteNonQuery(\"delete from" + " " + tablename + " where [email protected]\",");
                sb.AppendLine("new SqlParameter(\"id\",id));");
                sb.AppendLine("return rows > 0;}");
            }
            {
                sb.AppendLine("private static " + tablename +
                    " ToModel(DataRow row){");
                sb.AppendLine(tablename + " model = new "
                    + tablename + "();");
                foreach (DataRow row in dtCols.Rows)
                {
                    string colName = Convert.ToString(row["Column_Name"]);
                    string dataType = Convert.ToString(row["Data_Type"]);
                    sb.AppendLine("model." + colName + " = (" +
                        GetTypeByDBType(dataType) + ")row[\"" + colName + "\"];");
                }
                sb.AppendLine("return model;}");
            }
            {
                sb.AppendLine("public " + tablename + " Get(int id){");
                sb.AppendLine("DataTable dt = SqlHelper.ExecuteDataTable(\"select * from "
                    + tablename + "  where [email protected]\",");
                sb.AppendLine("new SqlParameter(\"id\",id));");
                sb.AppendLine("if (dt.Rows.Count > 1)");
                sb.AppendLine("{throw new Exception(\"more than 1 row was found\");}");
                sb.AppendLine("if (dt.Rows.Count <= 0){return null;}");
                sb.AppendLine("DataRow row = dt.Rows[0];");
                sb.AppendLine(tablename + " model = ToModel(row);");

                sb.AppendLine("return model;}");
            }

            {
                sb.AppendLine("public IEnumerable<" + tablename
                    + "> ListAll(){");
                sb.AppendLine("List<" + tablename + "> list = new List<" +
                    tablename + ">();");
                sb.AppendLine("DataTable dt = SqlHelper.ExecuteDataTable(\"select * from " +
                    tablename + "\");");
                sb.AppendLine("foreach (DataRow row in dt.Rows){");
                sb.AppendLine("list.Add(ToModel(row));}");
                sb.AppendLine("return list;}");
            }
            sb.AppendLine("}");
            sb.AppendLine("}");
            string dalDir = Path.Combine(args.OutputDir, "DAL");
            string dalFile =
                Path.Combine(dalDir, tablename + "DAL.cs");
            Directory.CreateDirectory(dalDir);
            File.WriteAllText(dalFile, sb.ToString());
        }
        //创建BLL层
        public static void GenerateBLL(string tablename, GeneratorArgs args)
        {
            DataTable dtCols = ExecuteDataTable(args.ConnectionString,
                "select * from INFORMATION_SCHEMA.COLUMNS where [email protected]",
                        new SqlParameter("tablename", tablename));
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("using System;");
            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.Linq;");
            sb.AppendLine("using System.Text;");
            sb.AppendLine("using " + args.RootNamespace + ".Model;");
            sb.AppendLine("using " + args.RootNamespace + ".DAL;");
            sb.AppendLine("namespace " + args.RootNamespace + ".BLL");
            sb.AppendLine("{");
            sb.AppendLine("class " + tablename + "BLL{");
            sb.AppendLine("public int AddNew(" + tablename + " model){");
            sb.AppendLine("return new " + tablename + "DAL().AddNew(model);}");
            sb.AppendLine("public bool Delete(int id){");
            sb.AppendLine("return new " + tablename + "DAL().Delete(id);}");
            sb.AppendLine("public bool Update(" + tablename + " model){");
            sb.AppendLine("return new " + tablename + "DAL().Update(model);}");
            sb.AppendLine("public " + tablename + " Get(int id){");
            sb.AppendLine("return new " + tablename + "DAL().Get(id);}");
            sb.AppendLine("public IEnumerable<" + tablename + "> ListAll(){");
            sb.AppendLine("return new " + tablename + "DAL().ListAll();}");
            sb.AppendLine("}}");
            string bllDir = Path.Combine(args.OutputDir, "BLL");
            string bllFile =
                Path.Combine(bllDir, tablename + "BLL.cs");
            Directory.CreateDirectory(bllDir);
            File.WriteAllText(bllFile, sb.ToString());
        }
    }
}

Generator.cs

GeneratorArgs.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace itcastcoder
{
    class GeneratorArgs
    {
        public string RootNamespace { get; set; }
        public string OutputDir { get; set; }
        public string ConnectionString { get; set; }
    }
}

GeneratorArgs.cs

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace itcastcoder
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

Program.cs

时间: 2024-08-09 02:46:03

杨中科板的代码生成器源码板的相关文章

实现简单的手写涂鸦板(demo源码)

在一些软件系统中,需要用到手写涂鸦的功能,然后可以将涂鸦的结果保存为图片,并可以将"真迹"通过网络发送给对方.这种手写涂鸦功能是如何实现的了?最直接的,我们可以使用Windows提供的GDI技术或GDI+技术来实现绘图功能.但是,要实现一个如此简单的涂鸦板,也不是那么容易的事情.幸运的是,我们可以直接使用OMCS提供的内置集成了这种功能的一个WinForm控件HandwritingPanel. HandwritingPanel控件的主要接口如下图所示: /// <summary&

iTOP4412开发板Android4.4源码编译分享

注意:本小节,介绍的源码指的是“20170803”以及后续新增的源码. 5.4.1.1 uboot 的编译 Android4.4.4 对应 uboot 的源码,编译器,参数配置,编译脚本以及编译参数和 Android4.0.3 的 uboot 全部一模一样. 5.4.1.2 Linux 内核的编译 源码目录 网盘下载 Android4.4.4 对应的源码.在网盘“iTOP-4412 开发板系统源码及镜像(其 他)”→“android_4.4.4 源码及镜像”目录下,在最新日期的文件夹下的“iTo

KalmanStudio代码生成器源码免费赠送

详细介绍 http://www.cnblogs.com/lingyun_k/archive/2011/06/23/2088541.html 领取方法 在手机应用市场搜索 “闲爱” APP下载并安装注册 领取源码需要有一个爱心积分,成功推荐一个用户注册就可以得到

代码生成器源码

xmal文件 <Window x:Class="MyCode.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="代码生成器" Height="650" Width="

java 企业 网站源码springmvc SSM 静态化 代码生成器 源码

前台: 支持四套模版, 可以在后台切换 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以访问速度快,轻便,对服务器负担小 3.网站前端采用主流的响应式布局,同一页面同时支持PC.平板.手机(三合一)浏览器访问 4.springmvc +spring4.3.7+ mybaits3.3  SSM 普通java web(非maven, 赠送pom.xml)  数据库:mysql --------

.NET开发必看资料53个+经典源码77个

目录0豆下载:http://down.51cto.com/data/426019 附件预览: 基于.net构架的留言板项目大全源码 http://down.51cto.com/zt/70 ASP.net和C#.net通用权限系统组件功能教程 http://down.51cto.com/zt/129 跟我一起学Visual Studio 2008系列视频教程 http://down.51cto.com/zt/181 微软官方Silverlight探秘系列视频课程 http://down.51cto

Android内核开发:源码的版本与分支详解

我想很多初学者或许跟我一样,看完Android源码下载相关的文章以后,就开始兴致勃勃地去下载Android源码了,但是下载完了源码后,有没有像我一样产生如下几个困惑呢? (1) Android版本有哪些分支可用?每个分支的TAG是什么? (2) Android源码下载完了怎么没有看到Linux内核代码?Android源码对应Linux内核是否可以从kernel.org官网去下载?Android对标准的Linux内核做了哪些修改? (3) Android源码分支与Linux版本分支的对应关系是什么

【Android 系统开发】 编译 Android 系统 u-boot 内核 源码 并烧写到 OK-6410A 开发板上

博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 Android 光盘 下载地址 : http://pan.baidu.com/share/link?shareid=3662728609&uk=2754759285 ; -- 光盘所含内容 : Android 引导 u-boot 源码, Android 内核 源码, Android 系统源码, 交叉编

迅为IMX6Q开发板提供原理图_底板PCB_驱动程序源码_芯片和LCD数据手册_开发板环境_使用手册

迅为IMX6开发板: Android4.4/6.0系统  Linux + Qt5.7系统  Ubuntu12.04系统 部分案例:HMI:3D打印机:医疗设备:工控机:触控一体机:车载终端 核心板兼容:IMX6Q商业级.IMX6Q工业级.IMX6Q-PLUS.IMX6DL版本 接口支持:4G全网通.GPS.千兆以太网.WIFI蓝牙.CAN总线.SATA接口.CAMERA接口等 光盘资料:原理图(PDF格式).底板PCB(Allegro格式).驱动程序源码.芯片和LCD数据手册.开发环境.产品使用