Спасибо за вашу помощь. Я решил эту проблему. Сначала измените read.S на __read.S и замените read на __read в read.S.Затем запишите read.cpp в bionic / libc / bionic, содержимое:
#include <unistd.h>
#include <sys/read.h>
#include "private/libc_logging.h"
extern "C" ssize_t __read(int, void *, size_t);
ssize_t read(int a, void * b, size_t c){
/* 测试时打印log用
const char * tag = "DebugRead";
const char * format = "%s";
const char * msg = "Cpp read() called";
__libc_format_log(ANDROID_LOG_DEBUG, tag, format, msg);
*/
return __read(a,b,c);
}
, запишите read.h в bionic / libc / include / sys.код:
#ifndef _SYS_READ_H_
#define _SYS_READ_H_
#include <linux/unistd.h>
__BEGIN_DECLS
extern ssize_t __read(int, void *, size_t);
__END_DECLS
#endif /* _SYS_READ_H_ */
наконец, добавьте bionic / read.cpp \ в bionic / libc / Android.mk - все в порядке.