将 Android* x86 NDK 用于 Eclipse* 并移植 NDK 示例应用

本地单文件上传脚本,命名uf

这是在本机上做的测试,利用bpcs_uploader脚本实现,只是进行简单的封装,自动完善云端文件路径。

技术要点:使用dirname获取文件所在目录,使用pwd获取文件完整路径,并作为云端文件路径。

#!/bin/bash
cur_dir=$(cd "$(dirname "$1")"; pwd)
name=$(basename "$1")
/home/grm/bin/bpcs_uploader/bpcs_uploader.php upload $1 AWIN$cur_dir/$name

本地文件夹上传脚本,命名ud

bpcs_uploader脚本只能实现单个文件上传,用此脚本可以实现目录批量上传。

技术要点:通过find命令输出目录下所有文件,用xargs
-t -n1
实现单个输出,从而可以遍历目录下所有文件,并作为参数逐次赋予脚本uf,通过不断调用脚本uf实现批量上传。

#!/bin/bash
find $1 -name ‘*.*‘ |xargs -t -n1 /home/grm/bin/uf

服务器数据库每日备份脚本,命名backupday.sh(改自鸟哥的linux私房菜)

技术要点:基本都是常规操作,注意find命令-mtime参数的使用

#!/bin/bash
# =========================================================
# 请输入,你想让备份数据放置到那个独立的目录去
basedir=/backup/daily/

# =========================================================
PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
export LANG=C
basefile1=$basedir/mysql.$(date +%Y-%m-%d).tar.bz2
basefile2=$basedir/cgi-bin.$(date +%Y-%m-%d).tar.bz2
[ ! -d "$basedir" ] && mkdir $basedir

# 1. MysQL (数据库目录在 /var/lib/mysql)
cd /var/lib
  tar -jpc -f $basefile1 mysql 

# 2. 定期删除旧备份
DAYS=30
find $basedir -name "mysql*" -type f -mtime +$DAYS -exec rm {} \;

代码及其他配置每周备份脚本,命名为backupweek.sh

#!/bin/bash
# ====================================================================
# 使用者参数输入位置:
# basedir=你用来储存此脚本所预计备份的数据之目录(请独立文件系统)
basedir=/backup/weekly  

# ====================================================================
# 底下请不要修改了!用默认值即可!
PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
export LANG=C

D=$(date +"%Y-%m-%d")

# 配置要备份的服务的配置档,以及备份的目录
postfixd=$basedir/postfix
vsftpd=$basedir/vsftp
sshd=$basedir/ssh
wwwd=$basedir/www
others=$basedir/others
userinfod=$basedir/userinfo
# 判断目录是否存在,若不存在则予以创建。
for dirs in $postfixd $vsftpd $sshd $wwwd $others $userinfod
do
    [ ! -d "$dirs" ] && mkdir -p $dirs
done

# 1. 将系统主要的服务之配置档分别备份下来,同时也备份 /etc 全部。

cd /etc/
    tar -jpc -f $vsftpd/vsftpd.$D.tar.bz2 vsftpd
cd /etc/
    tar -jpc -f $sshd/sshd.$D.tar.bz2 sshd ssh
cd /etc/
    tar -jpc -f $wwwd/httpd.$D.tar.bz2 httpd
cd /var/www
  tar -jpc -f $wwwd/html.$D.tar.bz2    html
cd /
  tar -jpc -f $others/etc.$D.tar.bz2   etc

# 2. 关於使用者参数方面
cp -a /etc/{passwd,shadow,group}    $userinfod
cd /var/spool
  tar -jpc -f $userinfod/mail.$D.tar.bz2   mail
cd /
  tar -jpc -f $userinfod/home.$D.tar.bz2   home
cd /var/spool
  tar -jpc -f $userinfod/cron.$D.tar.bz2   cron at

# 3. 定期删除旧备份
DAYS=30
find $vsftpd -name "vsftpd*" -type f -mtime +$DAYS -exec rm {} \;
find $sshd -name "sshd*" -type f -mtime +$DAYS -exec rm {} \;
find $wwwd -name "ht*" -type f -mtime +$DAYS -exec rm {} \;
find $others -name "etc*" -type f -mtime +$DAYS -exec rm {} \;
find $userinfod -name "cron*" -type f -mtime +$DAYS -exec rm {} \;
find $userinfod -name "home*" -type f -mtime +$DAYS -exec rm {} \;
find $userinfod -name "mail*" -type f -mtime +$DAYS -exec rm {} \;

自动上传脚本auto_upload_daily.sh

其中upload.sh的代码与本地脚本uf相同。简言之,脚本uf是云备份的基础。

#!/bin/bash
LOCAL_DATA=/backup/daily
MYSQL_BACKUP=mysql.$(date +"%Y-%m-%d").tar.bz2

upload.sh $LOCAL_DATA/$MYSQL_BACKUP

自动上传脚本auto_upload_weekly.sh

#!/bin/bash
LOCAL_DATA=/backup/weekly
D=$(date +"%Y-%m-%d")

HTTP=www/httpd.$D.tar.bz2
HTML=www/html.$D.tar.bz2
ETC=others/etc.$D.tar.bz2
HOM=userinfo/home.$D.tar.bz2
MAIL=userinfo/mail.$D.tar.bz2
PASSWD=userinfo/passwd.$D.tar.bz2
SHADOW=userinfo/shadow.$D.tar.bz2
SSHD=ssh/sshd.$D.tar.bz2
VSFTPD=vsftpd/vsftpd.$D.tar.bz2
CRONA=userinfo/cron.$D.tar.bz2

upload.sh $LOCAL_DATA/$HTTP
upload.sh $LOCAL_DATA/$HTML
upload.sh $LOCAL_DATA/$ETC
upload.sh $LOCAL_DATA/$HOM
upload.sh $LOCAL_DATA/$MAIL
upload.sh $LOCAL_DATA/$PASSWD
upload.sh $LOCAL_DATA/$SHADOW
upload.sh $LOCAL_DATA/$CRONA
upload.sh $LOCAL_DATA/$SSHD
upload.sh $LOCAL_DATA/$VSFTPD

最后,再启动定时任务

为防止网络出现问题导致上传失败,重复了3次上传操作

# crontab -l
01 1 * * * /bin/backupday.sh 2>>/backup/errors.log
20 1 * * 0 /bin/backupwk.sh 2>>/backup/errors.log
01 2 * * * /bin/auto_upload_daily.sh 2>>/backup/errors.log
01 4 * * * /bin/auto_upload_daily.sh 2>>/backup/errors.log
01 6 * * * /bin/auto_upload_daily.sh 2>>/backup/errors.log
20 2 * * 0 /bin/auto_upload_weekly.sh 2>>/backup/errors.log
20 4 * * 0 /bin/auto_upload_weekly.sh 2>>/backup/errors.log
20 6 * * 0 /bin/auto_upload_weekly.sh 2>>/backup/errors.log

将 Android* x86 NDK 用于 Eclipse* 并移植 NDK 示例应用

时间: 2024-12-28 09:00:46

将 Android* x86 NDK 用于 Eclipse* 并移植 NDK 示例应用的相关文章

将 Android* x86 NDK 用于 Eclipse* 并移植 NDK 演示样例应用

目标 面向 Eclipse (ADT) 的 Android 插件如今支持基于 NDK 的应用开发. 其可自己主动生成项目和构件文件以及代码存根,并可集成到整个 Android 应用开发中(构建原生库.将库拷贝到项目内的对应 JNI 目录.将应用打包以及生成带有 NDK 代码的终于 APK). 本文将讨论怎样配置 Eclipse 以利用该功能.并示范移植 NDK 应用的演示样例. 配置 Eclipse ADT 插件以配合 NDK 使用 必须先配置 Eclipse ADT 插件指向 NDK 安装路径

Android 使用OpenCV之编译环境非CygWin方式(Win7+Eclipse+ADT+CDT+NDK)

本文完全基于官网: https://dl-ssl.google.com/android/eclipse/ 只有简单的三步,官网写的非常简明全面,非常佩服 [准备] 1. Eclipse(Indigo) 2. ADT: 这个不说了,无非就是eclipse添加个android的安装源,如果这里选择了NDK Plugin的话,就会自动安装CDT哟: 3. NDK(android-ndk-r9d-windows-x86_64) 地址: http://developer.android.com/tools

Android+NDK+CDT+eclipse+OPenGL ES编制和native调试

周围环境: NDK版本号r8,eclipse和Android运用adt-bundle-windows-x86打包版本是更方便, 一.NDK汇集 1.源代码 NDK的examples文件夹中有Hello-GL2源代码,家能够先使用它. 2.将演示样例project导入到eclipse中 3.编译设置 a.选中project,eclipse中菜单windows->prefereces->android->NDK 设置NDK的路径 b.选中工程,eclipse中菜单project->pr

【Android】Eclipse自动编译NDK/JNI的三种方法

[Android]Eclipse自动编译NDK/JNI的三种方法 SkySeraph Sep. 18th  2014 Email:[email protected] 一.Eclipse关联cygwin 1. 工程->右击选择Properties->选择Builders,在Builders中选择New创建一个Program 2. 参数配置 二.Eclipse关联ndk-build(自建Builder方法)  1. Project->Properties->Builders->N

调试 Android* x86 应用程序的方法以及要使用的工具

作者:Xiaodong Wang 1.简介 众所周知,Android* 开发人员头顶许多称呼:设计员.程序猿等,并且通常会不可避免地被称为故障检修工.代码中的错误无法避免,因此无论您是否一开始就造成错误,了解调试工具以及如何迅速而有效地跟踪并解决错误都很重要.鉴于此,如今的 Android 开发人员必须掌握有效的调试技巧.本文提供了 Android 应用程序调试工具的简单教学,用于帮助 Android SDK 以及相关工具的新手迅速入门,并在 Android x86 平台上更有效地解决故障. 2

Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)

一.搭建Android开发环境 准备工作:下载Eclipse.JDK.Android SDK.ADT插件 下载地址:Eclipse:http://www.eclipse.org/downloads/ JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html Android SDK:http://developer.android.com/sdk/index.html ADT:

Eclipse无法设置NDK路径的解决方法

如果在Eclipse中设置NDK路径的时候遇到下面的情况(尼玛,我的NDK设置呢?): 可以参考百度经验解决:http://jingyan.baidu.com/article/4d58d5413000a09dd4e9c0fe.html 主要步骤 下载plugin,文件名为:com.android.ide.eclipse.ndk_23.0.2.1259578.jar: 将文件复制到Eclipse的plugins文件夹下面: 重启Eclipse. 搞定!

Android x86 4.4-r1 PC正式版发布

Android-x86可以看作是PC版Android,实现了将Android系统到x86平台的移植.日前,Android-x86 4.4 r1正式发布,这是Android-x86 4.4首个稳定版,感兴趣的可以在PC上体验一下安卓系统. Android-x 6 4.4 r1基于Android 4.4.2(Kitkat-MR1)开发,修正并添加了x86专用代码,以便系统能够在x86平台上平稳流畅运行,特别是是平板机和上网本的改进. Android x86 即运行于 x86 PC上的Android操

【转】How to Start Intel Hardware-assisted Virtualization (hypervisor) on Linux to Speed-up Intel Android x86 Emulator

[转]How to Start Intel Hardware-assisted Virtualization (hypervisor) on Linux to Speed-up Intel Android x86 Emulator The Intel Hardware Accelerated Execution Manager (Intel® HAXM) is a hardware-assisted virtualization engine (hypervisor) that uses Int