ubuntu-android开发环境配置

本文记录个人的ubuntu-android开发环境配置,在这里做下记录,希望对大家有所帮助,如有疑问发评论即可:

配置文件:/etc/profile 或 ~/.profile

1
2
3
4
5
6
7
8
9
10
11
12
13
# java
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79
export JRE_HOME=/usr/lib/jvm/jdk1.7.0_79/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
# Android SDK
export ANDROID_HOME=/home/ceict/Application/android-sdk
export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools
# Android NDK
export ANDROID_NDK_HOME=/home/ceict/Application/android-ndk-r9d
export PATH=$PATH:$ANDROID_NDK_HOME
欢迎关注微信公众号

微信公众号

linphone-android for mac编译过程记录

本文记录linphone-andoroid在mac上的编译过程,在这里做下记录,希望对大家有所帮助,如有疑问发评论即可:

环境搭建:

  • 代码下载:git clone git://git.linphone.org/linphone-android.git –recursive
  • 代码同步更新:git submodule sync && git submodule update –init –recursive
  • 下载ndk:curl -O https://dl.google.com/android/repository/android-ndk-r14b-darwin-x86_64.zip
  • mac的环境变量:~/.bash_profile
    1
    2
    3
    4
    5
    6
    JAVA_HOME=$(/usr/libexec/java_home)
    ANDROID_HOME=/Users/mydocument/Library/Android/sdk
    ANDROID_NDK=/Users/mydocument/Library/Android/android-ndk-r14b
    PATH=$PATH:$JAVA_HOME/bin:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_NDK
    export JAVA_HOME ANDROID_HOME ANDROID_NDK

编译过程中碰到的问题:

1. 找不到 R.raw.rootca:

1
2
3
4
5
报错信息:
/Users/mydocument/Documents/xing/AndroidStudioProjects/linphone-android/src/android/org/linphone/LinphoneManager.java:908: 错误: 找不到符号
copyFromPackage(R.raw.rootca, new File(mLinphoneRootCaFile).getName());
问题处理:由于rootca是通过网络下载的,所以造成报错的原因是未编译完成,即未走到下载流程,检查网络是否正常和其他报错信息即可;

2. Could not find the pkg-config program:

1
2
3
4
5
6
7
8
9
10
11
报错信息:
-- Using configuration file '/Users/mydocument/Documents/xing/AndroidStudioProjects/linphone-android/submodules/cmake-builder/configs/config-android.cmake'
-- Found PythonInterp: /usr/bin/python (found version "2.7.10")
CMake Error at cmake/CheckBuildTools.cmake:147 (message):
Could not find the pkg-config program.
Call Stack (most recent call first):
builders/CMakeLists.txt:72 (include)
configs/config-android.cmake:71 (include)
CMakeLists.txt:64 (include)`
问题处理:安装:pkg-config:brew install pkg-config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
报错信息:
CMake Error at CMakeLists.txt:638 (add_library):
Cannot find source file:
celt/bands.c
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
CMake Error: Cannot determine link language for target "opus".
CMake Error: CMake can not determine linker language for target: opus
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
ENABLE_SHARED
-- Build files have been written to: /Users/mydocument/Documents/xing/AndroidStudioProjects/linphone-android/WORK/android-arm64/Build/opus
make[3]: *** [/Users/mydocument/Documents/xing/AndroidStudioProjects/linphone-android/WORK/android-arm64/Stamp/EP_opus/EP_opus-configure] Error 1
make[2]: *** [CMakeFiles/EP_opus.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [arm64-build] Error 2
问题处理:删除目录->submodules/externals/opus,同步代码:git submodule sync && git submodule update --init --recursive
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
报错信息:
CMake Error at CMakeLists.txt:309 (add_library):
Cannot find source file:
amrwb/wrapper.cpp
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
CMake Error at CMakeLists.txt:217 (add_library):
Cannot find source file:
amrnb/wrapper.cpp
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
CMake Error: Cannot determine link language for target "opencore-amrwb".
CMake Error: CMake can not determine linker language for target: opencore-amrwb
CMake Error: Cannot determine link language for target "opencore-amrnb".
CMake Error: CMake can not determine linker language for target: opencore-amrnb
-- Generating done
-- Build files have been written to: /Users/mydocument/Documents/xing/AndroidStudioProjects/linphone-android/WORK/android-arm64/Build/opencoreamr
make[3]: *** [/Users/mydocument/Documents/xing/AndroidStudioProjects/linphone-android/WORK/android-arm64/Stamp/EP_opencoreamr/EP_opencoreamr-configure] Error 1
make[2]: *** [CMakeFiles/EP_opencoreamr.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [arm64-build] Error 2
问题处理:同问题3一样,删除目录->submodules/externals/opencore-amr,同步代码:git submodule sync && git submodule update --init --recursive

5. /bin/sh: yasm: command not found

1
2
3
4
5
6
7
8
9
10
报错信息:
/bin/sh: yasm: command not found
make[5]: *** [vpx_ports/emms.asm.o] Error 127
make[4]: *** [.DEFAULT] Error 2
make[3]: *** [/Users/mydocument/Documents/xing/AndroidStudioProjects/linphone-android/WORK/android-x86/Stamp/EP_vpx/EP_vpx-build] Error 2
make[2]: *** [CMakeFiles/EP_vpx.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [x86-build] Error 2
问题处理:安装yasm:brew install yasm

6. cpuid.asm:196: error: symbol `XGETBV’ redefined

1
2
3
4
5
6
7
8
../../../..//submodules/externals/openh264/codec/common/x86/cpuid.asm:196: error: symbol `XGETBV' redefined
make[4]: *** [codec/common/x86/cpuid.o] Error 1
make[3]: *** [/Users/mydocument/Documents/xing/AndroidStudioProjects/linphone-android/WORK/android-x86/Stamp/EP_openh264/EP_openh264-build] Error 2
make[2]: *** [CMakeFiles/EP_openh264.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [x86-build] Error 2
问题处理:安装nasm: brew install nasm
欢迎关注微信公众号

微信公众号

adb常用命令整理

卸载:
adb uninstall packagename
安装:
adb install [选项] [apk路径]
例:E:\1.apk
adb启动应用Activity:

1
adb shell am start -n package/package.LoginActivity

清除应用数据:

1
adb shell pm clear packagename

设备读取文件:
pull:

1
2
adb push [remote] [local]
例:adb pull /sdcard/1.txt F:\

push:

1
2
adb push [local] [remote]
例:adb push F:\1.txt /sdcard/

抓取log信息:

1
2
adb logcat -v time >[保存路径]
例:adb logcat -v time >F:\123.txt

wifi调试:

1
2
adb tcpip 5555 #设置tcp端口
adb connect device-ip-address

获取管理员权限:

1
2
3
adb root
shell@device:/ # su
root@device:/ #

重新挂载系统分区,使系统分区重新可写(读写data目录):

1
2
adb remount
remount succeeded

adb shell环境:

  • 1.获取设备IP地址:

    1
    2
    adb shell netcfg
    adb shell ifconfig eth0
  • 2.查看栈顶Acvitity,可以用来获取包名:

    1
    adb shell dumpsys activity top
  • 3.查看所有已安装的应用的包名:

    1
    adb shell pm list packages -f
  • 4.am的状态 Activity Manager State:

    1
    adb shell dumpsys activity
  • 5.包信息 Package Information:

    1
    adb shell dumpsys package
  • 6.内存使用情况Memory Usage:

    1
    adb shell dumpsys meminfo
  • 7.Memory Use Over Time:

    1
    adb shell dumpsys procstats
  • 8.Graphics State:

    1
    adb shell dumpsys gfxinfo
  • 9.查看手机CPU,可以看到手机架构(eg.ARMv7) 和几核处理器:

    1
    adb shell cat /proc/cpuinfo
  • 10.列表显示当前文件夹内容:

    1
    2
    3
    adb shell -> ls <查看文件夹下的内容>
    adb shell -> ls -l <查看文件夹下的内容、大小及权限>
    adb shelll -> ll <同上,很多机器不支持,推荐"ls -l">
  • 11.打开文件夹:

    1
    2
    3
    4
    adb shell ->cd <进入个人的主目录,即:/data>
    adb shell ->cd .. <返回上一级目录>
    adb shell ->cd ../.. <退出上两级目录>
    adb shell ->cd - <返回上次所在的目录>
  • 12.删除文件或文件夹:

    1
    2
    3
    adb shell ->rm xxx <删除文件xxx>
    adb shell ->rmdir xxx <删除xxx的文件夹>
    adb shell ->rm -r xxx <删除名字为xxx的文件夹及其里面的所有文件>
  • 13.创建:

    1
    2
    adb shell ->mkdir xxx <创建xxx的文件夹>
    adb shell ->mkdir -p xxx <递归创建xxx的文件夹>
  • 14.复制:

    1
    2
    3
    4
    5
    adb shell ->cp [`选项`] [`来源文件`] [`目的文件`]
    选项:
    -d 复制一个快捷方式;
    -r 复制一个目录;
    -i 对一个存在的文件,询问是否覆盖
  • 15.移动:

    1
    2
    3
    4
    adb shell ->mv [`选项`] [`来源文件`] [`目的文件`]
    选项:
    -u 目标文件存在时才会生效,如果源文件比目标文件新才会移动;
    -i 对一个存在的文件,询问是否覆盖;
  • 16.查看文件内容:

    1
    2
    3
    4
    5
    adb shell ->cat `查看一个文件的内容并显示在屏幕上`
    adb shell ->more
    `也是用来查看一个文件的内容。当文件内容太多,一屏幕不能占下,使用more当看完一屏后按空格键继续看下一屏。看完所有内容后就会退出。如果你想提前退出,只需按q键即可。`
    adb shell ->less
    `作用跟more一样,但比more好在可以上翻,下翻。空格键同样可以翻页,而按”j”键可以向下移动(按一下就向下移动一行),按”k”键向上移动。在使用more和less查看某个文件时,你可以按一下”/” 键,然后输入一个word回车,这样就可以查找这个word了。如果是多个该word可以按”n”键显示下一个。另外你也可以不按”/”而是按”?”后边同样跟word来搜索这个word,唯一不同的是,”/”是在当前行向下搜索,而”?”是在当前行向上搜索。`
欢迎关注微信公众号

微信公众号