⑴ 怎么把c语言编的程序转变成apk的安装包
嚯嚯嚯 如果你有 程序的源代码就简单了
1、搭建java开发环境,搭建ADT开发环境
2、根据c代码功能设计应用界面,就是一些简简单单的xml文件配置的啦
3、定义界面响应事件,就是一个Java函数啦,进了函数里你想干啥就干啥了(想干啥就干啥不包含方法的输入输出部分咯)
3、在方法里用 Java语法重新实现c的每个方法,不好实现的想办法实现
4、编译、打包、签名 再找个android手机拷贝进去,安装,执行,出来啦,简单吧
当然如果你没有源代码的话就要稍复杂些,当然不会复杂很多
就是在上面第1步前加些步骤:
1、反编译二进制文件得到程序源代码
2、反编译结果一般不怎么好看,对照着程序功能和反编译结果好好整理整理得到漂亮的源代码
3、得到源代码后就又简单了参考上面的步骤而已
============================================================
以上是开玩笑的,简单的说就是参考C代码开发 Android 应用,已经于C语言没关系了
⑵ centos 7怎么安装编译安装二进制文件
安装软件包
rpm [option] /path/to/package_file
-i:安装
-v:显示安装详细信息
-h:以#号显示安装进度,每个#号代表2%的安装进度
组合用法:rpm -ivh /path/to/package_file
--nodeps:安装时忽略依赖关系。(此方式安装的软件可能运行不了)
--test:测试安装,不是真正的安装。
--replacepkgs:重新安装(如果原有配置文件作了修改,很有可能不执行替换,而是将应该安装生成的配置文件重命名为 .rpmnew)
卸载软件包
rpm [option] package_name
-e:卸载(如果包的配置文件安装后曾被改动过,卸载时,此文件将不会卸载,而是被重命名并保留,例如warning: /etc/zprofile saved as /etc/zprofile.rpmsave.)
--nodeps:卸载时忽略依赖关系(卸载后,依赖次软件包的程序可能无法正常运行)
升级软件包
rpm [option] /path/to/package_file
-Uvh:升级或安装,如果旧版本的软件包不存在,则安装此软件包;如果旧的软件包存在,则升级旧软件包。
-Fvh:纯升级,如果旧版本的软件包不存在,则不安装此软件包;如果旧的软件包存在,则升级旧软件包。
注意:不应该对内核执行升级操作,而是安装。系统允许多内核并存
⑶ linux系统下用什么工具做安装包_linux软件安装包
【享】linux安装程序
初者都知道何linux安装程序面简单说
Linux系统安装软件见两种:
种软件源代码您需要自手编译种软件安装包通用gzip压缩tar包(缀名.tar.gz)
另种软件执行程序要安装种软件安装包通RPM包(RedHatLinuxPacket软件包管理器)缀名.rpm用RPM格式打包源代码、用gzip压缩执行套装程序要您理解思路两种形式安装包
源代码编译安装
Linux软件源代码发指提供该软件所程序源代码发布形式需要用户自编译执行二进制码并进行安装其优点配置灵随意掉或保留某些功能/模块适应种硬件/操作系统平台及编译环境;缺点难度较般适合初者使用
各软件源代码包般都各软件项目主页提供载例:等
1.*.src.rpm形式源宏拍码代码软件包
安装:
rpm-rebuild*.src.rpm
cd/usr/src/dist/RPMS
rpm-ivh*.rpm
卸载:
rpm-epackgename
说蔽哪明:rpm--rebuild*.src.rpm命令源代码编译并/usr/src/dist/RPMS二进制RPM软件包再安装该贺好二进制包即Packgename前所述
2.*.tar.gz/*.tgz/*.bz2形式源代码软件包
tar.gz或tgz或tar.bz2等格式结尾软件包般都源代码式发布软件安装类软件首先需要软件进行解压:
#tarzxvffilename.tar.gz
#tarxvfzfilename.tgz
#tarxvfjfilename.tar.bz2
解压进入解压目录:
#cdfilename/
于类文档见安装步骤:配置、编译安装3步其麻烦配置所软件安装相关配置都步指定:比软件安装位置等
配置:./configure
编译:make
安装:makeinstall
卸载:makeuninstall或手删除
说明:建议解压先阅读说明文件()解安装需求必要需改编译配置些软件包源代码编译安装用makeuninstall命令进行卸载提供功能则软件卸载必须手进行由于软件能文件散安装系统目录往往难删除干净应该编译前进行配置指定软件要安装目标路径:./configure--prefix=目录名使用rm-rf软件目录名命令进行干净彻底卸载与其安装式相比需要用户自编译安装难适合于使用Linux已定经验般推荐初者使用
RPM格式软件包安装
RPMRedHat公司发软件包管理器使用容易RPM形式软件包进行安装、升级、卸载、验证、查询等操作安装简单卸载软件安装处目录文件删除干净推荐初者尽能使用RPM形式软件包软件包往往特定命令规范名字由文件名版本号.rpm组字串例apache-3.1.12-i386.rpmapache-devel-3.1.12-i386.rpm软件包名称别-devel各支持RPM格式Linux见软件RPM包网站rpmfind.net找
1.安装
命令格式:
rpm-i(or--install)optionsfile1.rpm...fileN.rpm
参数:
file1.rpm...fileN.rpm指要安装RPM包文件名
详细选项:
-h(or—hash)安装输hash记号;test安装进行测试并实际安装;--percent百比形式输安装进度;--excludedocs安装软件包文档;--includedocs安装文档;--replacepkgs强制重新安装已经安装软件包;--替换属于其软件包文件;--force忽略软件包及文档冲突;--noscripts运行预安装安装脚本;--prefixNEWPATH软件包安装由NEWPATH指定路径;--ignorearch校验软件包结构;--ignoreos检查软件包运行操作系统;--nodeps检查依赖性关系;--ftpproxyHOST用HOST作FTP代理;--ftpportPORT指定FTP端口号PORT
通用选项:
-v显示附加信息;-vv显示调试信息;--rootDIRECTORY让指定路径作根目录预安装程序安装程序都安装目录;--rcfileFILELIST设置rpmrc文档FILELIST;--dbpathDIRECTORY设置RPM资料库所路径DIRECTORY
2.删除
命令格式:
rpm-e(or--erase)optionspkg1...pkgN
参数:
pkg1...pkgN:要删除软件包
详细选项:
--test执行删除测试;--noscripts运行预安装安装脚本程序;--nodeps检查依赖性
通用选项:
-vv显示调试信息;--rootDIRECTORY让指定路径作根目录预安装程序安装程序都安装目录;--rcfileFILELIST设置rpmrc文档FILELIST;--dbpathDIRECTORY设置RPM资料库所路径DIRECTORY
3.升级
命令格式:
rpm-U(or--upgrade)optionsfile1.rpm...fileN.rpm
参数:
file1.rpm...fileN.rpm指软件包名字
详细选项:
-h(or—hash)安装输hash记号;—oldpackage允许旧版本;--test进行升级测试;--excludedocs安装软件包文件;--includedocs安装文件;--replacepkgs强制重新安装已经安装软件包;--替换属于其软件包文件;--force忽略软件包及文件冲突;--percent百比形式输安装进度;--noscripts运行预安装安装脚本;--prefixNEWPATH软件包安装由NEWPATH指定路径;--ignorearch校验软件包结构;--ignoreos检查软件包运行操作系统;--nodeps检查依赖性关系;--ftpproxyHOST用HOST作FTP代理;--ftpportHOST指定FTP端口号HOST
通用选项:
-v显示附加信息;-vv显示调试信息;--rootDIRECTORY让指定路径作根目录预安装程序安装程序都安装目录;--rcfileFILELIST设置rpmrc文件FILELIST;--dbpathDIRECTORY设置RPM资料库所路径DIRECTORY
4.查询
命令格式:
rpm-q(or--query)options
参数:
pkg1...pkgN:查询已安装软件包
详细选项:
-pPACKAGE_FILE查询软件包文件;-fFILE查询FILE属于哪软件包;-a查询所安装软件包;--CAPABILITY查询提供CAPABILITY功能软件包;-ggroup查询属于group组软件包;--CAPABILITY查询所需要CAPABILITY功能软件包
选项:
-i显示软件包概要信息;-l显示软件包文件列表;-c显示配置文件列表;-d显示文件列表;-s显示软件包文档列表并显示每文件状态-;-scripts显示安装、卸载、校验脚本;--queryformat(or--qf)用户指定式显示查询信息;--mp显示每文件所已校验信息;--proVides显示软件包提供功能;--requires(or-R)显示软件包所需功能
通用选项:
-v显示附加信息;-vv显示调试信息;--rootDIRECTORY让指定路径作根目录预安装程序安装程序都安装目录;-rcfileFILELIST设置rpmrc文件FILELIST;--dbpathDIRECTORY设置RPM资料库所路径DIRECTORY
5.校验已安装软件包
命令格式:
rpm-V(or--verify,or-y)options
参数:
pkg1...pkgN要校验软件包名
软件包选项:
-pPACKAGE_FILE校验PACKAGE_FILE所属软件包;-a校验所软件包;-ggroup校验所属于组group软件包
详细选项:
--noscripts运行校验脚本;--nodeps校验依赖性;--nofiles校验文档属性
通用选项:
-v显示附加信息;-vv显示调试信息;--rootPATH让RPMPATH指定路径做根目录预安装程序安装程序都安装目录;--rcfileFILELIST设置rpmrc文件FILELIST;--dbpathDIRECTORY设置RPM资料库所路径DIRECTORY
6.校验软件包文件
语:
rpm-K(or--checksig)optionsfile1.rpm...fileN.rpm
参数:
file1.rpm...fileN.rpm软件包文件名;Checksig--详细选项;--nopgp校验PGP签名
通用选项:
-v显示附加信息;-vv显示调试信息;--rcfileFILELIST设置rpmrc文件FILELIST
7.其RPM选项
--rebuilddb重建RPM资料库;--initdb创建新RPM资料库;--quiet尽能减少输;--help显示帮助文件;--version显示RPM前版本
喜欢字符接口安装或卸载些软件包完全安装基于X-Window图形接口软件包管理程序glint,xrpm图形接口或使用KDEKPackage(单击【始】→【运行命令】其输入KPackage即启KPackage)等软件包安装、升级、卸载、验证查询通单击鼠标轻松完图所示
需要注意每RPM软件包格式软件并定独立各RPM软件包间定依赖关系删除某RPM软件包能导致别软件能使用升级删除应该注意
本载安装linux发现版本都几百兆我觉系统都没款点软件能用或者说用起问题啊我直觉安装包越越
⑷ 修改后的安卓安装包,如何反编译回去
1、首先新建一个android项目,里面只有一个MainActivity,而且主界面只会显示一个字符串:你好。
2、下面,切换到这个项目生成的apk文件所在的目录,可以看到有一个hellodemo.apk。
3、在命令行输入:apktool d -r hellodemo.apk。可以看到在当前目录下生成了一个hellodemo文件夹。
4、进入到hellodemo\smali\com\example\hello,打开MainActivity.smali。找到:
const-string v1, "\u4f60\u597d",
修改为:
const-string v1, "hello",
5、然后在命令行输入:apktool b hellodemo hellodemo1.apk。这回重新打包成hellodemo1.apk。
6、然后给新生成的apk进行签名。把这个apk拷贝到autosign的目录下面,然后切换过去,在命令行输入:java -jar signapk.jar testkey.x509.pem testkey.pk8 hellodemo1.apk hellodemo.apk。
7、把生成的hellodemo.apk安装到手机,可以看到主界面上已经显示的是hello,而不再是你好。说明反编译重新打包成功!
⑸ 如何编译armlinux的go
Golang也就是Go语言,现在已经发行到1.4.1版本了,语言特性优越性和背后Google强大靠山什么的就不多说了。Golang的官方提供了多个平台上的二进制安装包,遗憾的是并非没有发布ARM平台的二进制安装包。ARM平台没办法直接从官网下载二进制安装包来安装,好在Golang是支持多平台并且开源的语言,因此可以通过直接在ARM平台上编译源代码来安装。整个过程主要包括编译工具配置、获取Golang源代码、设置Golang编译环境变量、编译、配置Golang行环境变量等步骤。
注:本文选用树莓派做测试,因为树莓派是基于ARM平台的。
1、编译工具配置
据说下个版本的golang编译工具要使用golang自己来写,但目前还是使用C编译工具的。因此,首先要配置好C编译工具:
1.1在Ubuntu或Debian平台上可以使用sudoapt-getinstallgcclibc6-dev命令安装,树莓派的RaspBian系统是基于Debian修改的,所以可以使用这种方法安装。
1.2在RedHat或CentOS6平台上可以使用sudoyuminstallgcclibc-devel命令安装。
安装完成后可以输入gcc--version命令验证是否成功安装。
2、获取golang源代码
2.1直接从官网下载源代码压缩包。
golang官网提供golang的源代码压缩包,可以直接下载,最新的1.4.1版本源代码链接:/golang/go1.4.1.src.tar.gz
2.2使用git工具获取。
golang使用git版本管理工具,也可以使用git获取golang源代码。推荐使用这个方法,因为以后可以随时获取最新的golang源代码。
2.2.1首先确认ARM平台上已经安装了git工具,可以使用git--version命令确认。一般linux平台都安装了git,没有的话可以自行安装,不同平台的安装方法可以参考:download/linux
2.2.2克隆远程golang的git仓库到本地
在终端cd到你想要安装golang的目录,确保该目录下没有名为go的目录。然后以下命令获取代码仓库:
gitclone/go
大陆地区可能会获取失败,在不翻墙的情况下我试了几次都没成功,原因大家都懂的。好在google已经将golang也托管到github上面,所以也可以通过下面命令获取:
gitclone/golang/go.git
视网络情况,下载可能需要不少时间。我2M的带宽花了将近两个小时才下载完,虽然整个项目不过几十兆==
下载完成后,可以看到目录下多了一个go目录,里面即为golang的源代码,在终端上执行cdgo命令进入该目录。
执行下面命令检出go1.4.1版本的源代码,因为现在汪敏指已经有新的代码提交上去了,最新的代码可能不是最稳定的:
gitcheckoutgo1.4.1
至此,最新1.4.1发行版的源代码获取完毕
3、设置golang的编译环境变量
主要有GOROOT、GOOS、GOARCH、GOARM四个环境变量需要设置,先解释四个环境变量的意义。
3.1GOROOT
主要代表golang树结构目录的路径,也就是上面git检出的go目录。一般可以不用设置这个环境变量,因为编译的时候默认会以go目录下src子目录中的all.bash脚本困配运行时的父目录作为GOROOT的值。为了保险起见,可以直接设拿芹置为go目录的路径。
3.2GOOS和GOARCH
分别代表编译的目标系统和平台,可选值如下:
GOOSGOARCH
darwin386
darwinamd64
dragonfly386
dragonflyamd64
freebsd386
freebsdamd64
freebsdarm
linux386
linuxamd64
linuxarm
netbsd386
netbsdamd64
netbsdarm
openbsd386
openbsdamd64
plan9386
plan9amd64
solarisamd64
windows386
windowsamd64
需要注意的是这两个值代表的是目标系统和平台,而不是编译源代码的系统和平台。树莓派的RaspBian是linux系统,所以这些GOOS设置为linux,GOARCH设置为arm。
3.3GOARM
表示使用的浮点运算协处理器版本号,只对arm平台有用,可选值有5,6,7。如果是在目标平台上编译源代码,这个值可以不设置,它会自动判断需要使用哪一个版本。
总结下来,在树莓派上设置golang的编译环境变量,可编辑$HOME/.bashrc文件,在末尾添加下面内容:
exportGOROOT=你的go目录路径
exportGOOS=linux
exportGOARCH=arm
编辑完后保存,执行source~/.bashrc命令让修改生效。
4、编译源代码
环境变量配置完成自后就可以开始编译源代码。在go目录下的src子目录中,主要有all.bash和make.bash两个脚本(另外还有两个all.bat和make.bat脚本适用于window平台)。编译实际上就是执行其中一个脚本,两者的区别在于all.bash在编译完成后还会执行一些测试套件。如果希望只编译不测试,可以运行make.bash脚本。使用cd命令进入go下src目录,执行./all.bash或者./make.bash命令即可开始编译。由于硬件情况不同,编译耗费的时间不同。在我的B型树莓派编译过程花费了将近半个小时,编译完成后执行的测试套件又花费了差不多一个小时,总共花费了一个半小时左右。
5、配置golang运行环境变量
编译完成后,go目录下会生成bin目录,里面就是go的运行脚本。为了以后使用方法,可以将这个bin路径添加到PATH环境变量中。同样编辑~/.bashrc文件,因为前面设置过GOROOT环境变量指向go目录了,所以只需要在末尾加上
exportPATH=$PATH:$GOROOT/bin
保存后同样执行source~/.bashrc命令让环境变量生效。
至此,golang源代码编译安装成功。执行goversion应该就能看到当前golang的版本信息,表示编译安装成功。