1 #include <arpa/inet.h> 2 #include <cutils/sockets.h> 3 #include <fcntl.h> 4 #include <hardware/gralloc.h> 5 #include <sys/stat.h> 6 #include <sys/wait.h> 7 #include <unistd.h> 8 #include <algorithm> 9 #include <chrono> 10 #include <fstream> 11 #include <iostream> 12 #include <numeric> 13 #include <string> 14 #include <tuple> 15 #include <vector> 16 17 #include <android-base/stringprintf.h> 18 #include <meminfo/procmeminfo.h> 19 20 using namespace std; 21 22 #define BUFFER_SIZE (1024 * 1024 * 1024) 23 main(int,char **)24int main(int, char**) { 25 // waste a bunch of memory 26 void* src = malloc(BUFFER_SIZE); 27 for (size_t i = 0; i < BUFFER_SIZE; i++) { 28 ((char*)src)[i] = (char)i; 29 } 30 void* dst = malloc(BUFFER_SIZE); 31 memcpy(dst, src, BUFFER_SIZE); 32 33 uint64_t pss; 34 // should always return true 35 std::string pid_path = android::base::StringPrintf("/proc/%d/smaps", getpid()); 36 while (android::meminfo::SmapsOrRollupPssFromFile(pid_path, &pss)) 37 ; 38 39 return 0; 40 } 41