登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 777|回复: 0

Android平台下Shell脚本现实开辟场景应用

[复制链接]

216

主题

1

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2017-11-22 22:25:52 | 显示全部楼层 |阅读模式 来自 北京
PLiDqdIyshahoQ4w.jpg

Android平台下Shell脚本现实开辟场景应用


内容一
Shell脚本语言-数据库SQL语句-在脚本中的应用


01
登录数据库
            脚本代码->fileA.sh
                  #!/bin/bash
                  MYSQL=$(which mysql)
                  $MYSQL -u root -p
            实行脚本
                  Dream$ ./fileA.sh




02
表现数据库
            脚本代码->fileA.sh

                  #!/bin/bash
 
                  MYSQL=$(which mysql)
                  #表现数据库列表
                  $MYSQL -u root -p -e 'show databases'
            实行脚本
                  Dream$ ./fileA.sh




03
查询表数据
            脚本代码->fileA.sh

                  #!/bin/bash


                  MYSQL=$(which mysql)
                  #表现数据库列表
                  $MYSQL db_test  -u root -p -e 'select * from t_user'
            实行脚本
                  Dream$ ./fileA.sh


04
查询表数据->开始符、竣事符
            脚本代码->fileA.sh

                  #!/bin/bash
                 
                  MYSQL=$(which mysql)
                  #表现数据库列表
                  $MYSQL db_test -u root -p fileA.sh

                  #!/bin/bash
 
                  MYSQL=$(which mysql)
                  if [ $# -ne 3 ]
                  then
                       echo "参数不敷"
                  else
                       statement="insert into t_user values($1,’$2', $3)"
                       $MYSQL db_test -u root -p fileA.sh

                  #!/bin/bash
                           
                  MYSQL=$(which mysql)
                  if [ $# -ne 4 ]
                  then
                       echo "参数不敷"
                  else
                       statement="update t_user set u_name='KK' where u_id=1"
                       $MYSQL db_test -u root -p fileA.sh

                  #!/bin/bash
 
                  MYSQL=$(which mysql)
                  if [ $# -ne 4 ]
                  then
                       echo "参数不敷"
                  else
                       statement="delete from t_user where u_id=1"
                       $MYSQL db_test -u root -p 转成XML格式




09
办理mysql输入暗码题目
            第一步:在/usr/local/mysql-5.7.17-macos10.12-x86_64/support-files下,找到my.cnf文件,会发现找不到,直接找my-default.cnf文件

                   留意:
                       mac下: my.cnf
                       windows下: my.ini
            第二步:拷贝my-default.cnf这个文件到桌面举行修改内容,添加默认暗码,而且重定名为"my.cnf"
            第三步:实行下令,找到mysql启动默认设置目次
                  下令:Dream$ mysqld --help --verbose | grep -B1 -i "my.cnf"
                  效果:mysqld: Can't change dir to '/usr/local/mysql-5.7.17-macos10.12-x86_64/data/' (Errcode: 13 - Permission denied)
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
--
  -P, --port=#        Port number to use for connection or 0 to default to,
                      my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default
            第四步:将my.cnf设置文件拷贝到/etc目次下
            第五步:重启mysql数据库
            第六步:测试,即可乐成通过


内容二
Shell脚本语言-编译动态库



下载FFmpeg源码
            官方网站:http://www.ffmpeg.org/download.html

            接纳git举行下载,下令如下
                  git clone http://git.ffmpeg.org/ffmpeg.git ffmpeg



修改configure设置文件
            起首->处置惩罚之前:目的编译出来.so动态库格式

                  libavcodec.so.57.2.100
                  存在题目:你在Android步伐中无法加载动态库,编译器报错(报错信息:超不到这个动态库),实时你修改了后缀名为libavcodec.so,依然照旧无法运行,这事一个坑
            其次->处置惩罚之后:.so动态库格式(国外网站,关于FFmpeg安卓开辟相干资料查找到的)
                  libavcodec.so
                  办理方案
                       起首:进入FFmpeg-3.4开辟包
                       其次:打开configure文件
                       末了:修改设置
 
                     原始
                  #SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
                  #LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
                  #SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
                  #SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
 
                  修改
             SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
                  LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
                  SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
                  SLIB_INSTALL_LINKS='$(SLIBNAME)'





编写Shell编译脚本
            #!/bin/bash
            #第一步:进入指定编译目次
            cd ffmpeg-3.4
 
            #第二步:指定NDK路径
       NDK_DIR=/Users/yangshaohong/Desktop/tools/eclipse/android-ndk/android-ndk-r10e
            #第三步:指定利用NDK Platform版本(对应体系版本)
            SYSROOT=$NDK_DIR/platforms/android-18/arch-arm
            #第四步:指定编译工具链
       TOOLCHAIN=$NDK_DIR/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
            #第五步:指定编译后的安装目次,以及指定编译CPU平台架构范例
            ARCH=arm
            PREFIX=/Users/yangshaohong/Desktop/ffmpeg-android/android-build/$ARCH
            ADDI_CFLAGS="-marm"
 
            #第六步:设置必要编译动态库参数
            function build_armeabi
            {
                  ./configure \
                  --prefix=$PREFIX \
                  --enable-shared \
                  --enable-gpl \
                  --disable-static \
                  --disable-doc \
                  --disable-ffmpeg \
                  --disable-ffplay \
                  --disable-ffprobe \
                  --disable-ffserver \
                  --disable-doc \
                  --disable-symver \
                  --enable-small \
                  --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
                  --target-os=android \
                  --arch=$ARCH \
                  --enable-cross-compile \
                  --sysroot=$SYSROOT \
                  --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
                  --enable-pic \
                  $ADDITIONAL_CONFIGURE_FLAG
                  make clean
                  make -j4
                  make install
            }
 
            build_armeabi



在Mac平台下编译.so动态库
            下令:./ffmpeg-build-armeabi.sh




测试
            在Android Studio中新建NDK项目,测试编译好的.so动态库即可


Shell脚本现实开辟场景应用

免费技能分享直播课
11月21号晚上8:30


报名方式


UnN5AwL5PPw4a5Ii.jpg 扫描二维码参加专属学习群

或直接搜刮QQ群号:684090180
腾讯讲堂Android研究院高级讲师


dOE7Ll75vpcpxV74.jpg Dream老师


原360手机安全卫士开辟工程师,同时兼任360手机安全卫士Andorid、iOS开辟项目架构。
在架构计划方面有独特认知,善于C/C++底层开辟,平台兼容性处置惩罚,性能优化,OpenCV/OpenGL/Unity3D,同时在VR/AR以及智能安防范畴有非常深入研究。




开辟者技能火线 汇聚最新最热的技能干货,

行业动态,职场思索, 热门头脑,一线面经

相干保举

Android架构组件稳固版正式发布
深入探究Android异步精华Handler
kz1ityTmU2aeTmyP.jpg




上一篇:想要编写 Shell 脚本的最佳实践?看这篇就够了~
下一篇:Shell入门真实案例解说
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-16 10:25 , Processed in 0.254264 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表