안 드 로 이 드 에서 htop 과 lsof 를 사용 합 니 다.
3484 단어 linux
1.컴 파일 방식
1.안 드 로 이 드 프레임 워 크 에서 컴 파일
github 에 프로젝트(인용 2)가 있 습 니 다.4.86 lollipop 에서 의 프로젝트 를 바탕 으로 너무 많은 설명 을 하지 않 습 니 다.
2.ndk(r10e,api 21)를 사용 하여 컴 파일
(1)소스 코드 를 먼저 다운로드(참조 3),현재 최신 버 전 은 4.89
(2)컴 파일 스 크 립 트 설정
export PATH=/home/test/android-ndk-r10e/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH
SYSROOT=/home/test/android-ndk-r10e/platforms/android-21/arch-arm/
export LSOF_CC="arm-linux-androideabi-gcc --sysroot=$SYSROOT"
export LSOF_HOST=arm-linux-androideabi
export LSOF_CFGF='-O -DHAS_STRFTIME -DHASNORPC_H -DGLIBCV'
./Configure -n linux
make
더 많은 설정 매개 변 수 는 00XCONFIG 파일 에서 설명 할 수 있 습 니 다.(3)컴 파일 오류 수정
a) lsof.h:229:12: error: conflicting types for '__errno'
lsof.h 의 229 줄 을 찾 아"extern int errno"를 차단 합 니 다.
b) misc.o:misc.c:function safestrprt: error: undefined reference to 'mblen'
machine.h 의 458 줄 을 찾 아 차단 합 니 다.\#define HASWIDECHAR 1"
(4)실행 오류 수정
실행 중 오류"PIE(position independent executables)만 지 원 됩 니 다."
컴 파일 스 크 립 트 LSOFCC 는"arm-linux-androideabi-gcc--sysroot=$SYSROOT-fpIE-pie"로 수정 되 었 습 니 다.
(5)정적 링크 버 전 생 성
lsof 설정 은 동적 링크 방식 만 지원 하지만 비 PIE 방식(위의 4 시 건 너 뛰 기)으로 컴 파일 이 성공 한 전제 에서 다음 명령 을 실행 하면 정적 링크 버 전 을 생 성 할 수 있 습 니 다(4 참조).
$LSOF_CC -o lsof -static dfile.o dmnt.o dnode.o dproc.o dsock.o dstore.o arg.o main.o misc.o node.o print.o proc.o store.o usage.o util.o -L./lib -llsof
2.htop-2.0.2 와 ncurses-6.0 의 컴 파일 스 크 립 트 를 첨부 합 니 다.
1、htop
export PATH=/home/test/android-ndk-r10e/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH
SYSROOT=/home/test/android-ndk-r10e/platforms/android-21/arch-arm/
./configure \
CC=arm-linux-androideabi-gcc \
--prefix=$PWD/system \
--bindir=$PWD/system/bin \
CFLAGS=" -I$PWD/../ncurses-6.0/system/include -I$PWD/../ncurses-6.0/system/include/ncurses --sysroot=$SYSROOT -fPIE -pie" \
LDFLAGS=" -L$PWD/../ncurses-6.0/system/lib" \
--host=arm-linux-androideabi \
--disable-unicode
make
make install
2、ncurses
export PATH=/home/test/android-ndk-r10e/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH
SYSROOT=/home/test/android-ndk-r10e/platforms/android-21/arch-arm/
./configure \
CC=arm-linux-androideabi-gcc \
--prefix=$PWD/system \
CFLAGS=" -I../ncurses -I../progs --sysroot=$SYSROOT" \
--host=arm-linux-androideabi \
--with-shared \
make
make install
3.화제 확장
ndk 를 사용 하여 교차 컴 파일(ndk-build 방식 이 아 닌)을 할 때 컴 파일 스 크 립 트 를 써 야 합 니 다.이것 은 일정한 중복 작업(예 를 들 어 ndk 경로,sysroot 파라미터,컴 파일 러 설정 등)이 있 습 니 다.누군가가 이 중복 작업 을 컴 파일 도구(참조 5)로 통합 한 것 을 발 견 했 습 니 다.프로젝트 디 렉 터 리 에서 도구 스 크 립 트 를 실행 하면 초기 설정 작업 을 완성 할 수 있 습 니 다.
4.관련 인용
1、http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29570002&id=5746172
2、https://github.com/cfig/android_tools
3、http://archive.ubuntu.com/ubuntu/pool/main/l/lsof/
4、http://blog.lilydjwg.me/2014/3/8/lsof-for-android-compiled.43363.html
5、https://z3ntu.github.io/2015/12/12/Cross-compiling-native-linux-applications-for-android.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.