{"id":10924,"date":"2021-09-18T21:30:37","date_gmt":"2021-09-18T13:30:37","guid":{"rendered":"https:\/\/www.bookcard.net\/wordpress\/?p=10924"},"modified":"2021-09-18T21:30:37","modified_gmt":"2021-09-18T13:30:37","slug":"android_studio_ndk_frames","status":"publish","type":"post","link":"https:\/\/www.bookcard.net\/wordpress\/android_studio_ndk_frames\/","title":{"rendered":"Android Studio NDK-Frames\u5e40"},"content":{"rendered":"<figure id=\"attachment_10925\" aria-describedby=\"caption-attachment-10925\" style=\"width: 1280px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2021\/09\/Android_Studio_NDK_ninja_error_unknown_target_clean_did_you_mean_ninja_t_clean-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-10925\" src=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2021\/09\/Android_Studio_NDK_ninja_error_unknown_target_clean_did_you_mean_ninja_t_clean-1.jpg\" alt=\"Android Studio NDK-Frames\u5e40\" width=\"1280\" height=\"800\" srcset=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2021\/09\/Android_Studio_NDK_ninja_error_unknown_target_clean_did_you_mean_ninja_t_clean-1.jpg 1280w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2021\/09\/Android_Studio_NDK_ninja_error_unknown_target_clean_did_you_mean_ninja_t_clean-1-300x188.jpg 300w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2021\/09\/Android_Studio_NDK_ninja_error_unknown_target_clean_did_you_mean_ninja_t_clean-1-768x480.jpg 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/a><figcaption id=\"caption-attachment-10925\" class=\"wp-caption-text\">Android Studio NDK-Frames\u5e40<\/figcaption><\/figure>\n<p>\u4fc2\u6e38\u6232\u6bcf\u300e\u6e32\u67d3\u300f1\u300e\u756b\u9762\u300f\u544c1\u300e\u5e40\u300fFrame, \u00a0\u5f71\u66f8\u6bcf\u79d224\u683c\u300e\u83f2\u6797\u300f24\u300e\u5e40\u300f, Android\u6bcf\u79d2\u81f3\u9ad860\u300e\u5e40\u300f.<\/p>\n<p>Android Studio NDK<\/p>\n<ol>\n<li>\u901a\u904eclock()\u7372\u5f97\u9032\u7a0b\u6642\u9418 \u5ea6\u91cf\u6642\u9593\u6574\u6578\u503c.<\/li>\n<li>\u901a\u904esysconf(_SC_CLK_TCK) \u7372\u5f97\u6642\u9418\u4fe1\u865f, \u6bcf\u79d2\u6642\u9418\u55ae\u5143\u503c, \u4fc2Linux\u6b64\u503c\u70ba100<\/li>\n<li>\u8a08\u7b97\u79d2 float seconds= (float)clock() \/ (float)sysconf(_SC_CLK_TCK);<\/li>\n<\/ol>\n<table>\n<tbody>\n<tr>\n<td width=\"575\">#include &lt;time.h&gt;<\/td>\n<\/tr>\n<tr>\n<td width=\"575\">clock_t clock(void)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"575\">#include &lt;unistd.h&gt;<\/td>\n<\/tr>\n<tr>\n<td width=\"575\">long sysconf(int name)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>\u91cf\u5ea6\u7a0b\u5f0f\u8017\u6642<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"575\">long\u00a0 clockTicks = sysconf(_SC_CLK_TCK);\/\/ \u6642\u9418\u4fe1\u865f<\/p>\n<p>clock_t startTime = clock();\/\/\u7576\u524d\u6642\u9221<\/p>\n<p>\/\/ \u8abf\u7528\u7a0b\u5f0f<\/p>\n<p>clock_t currentTime = clock();\/\/\u7576\u524d\u6642\u9221<\/p>\n<p>float seconds = (float)(currentTime &#8211; startTime) \/ (float)clockTicks;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>\u9700\u8981struct\u7d50\u69cb\u7528\u849e\u8a08\u300e\u5e40\u300fFrame, \u516c\u5f0f\u52a0\u4e0b:<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"575\">float _fps = Frames * (double)(currentTime &#8211; startTime) \/ (float)clockTicks ;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"575\">\u300e\u5e40\u300fFrame<\/td>\n<\/tr>\n<tr>\n<td width=\"575\">typedef struct FPS_TYP {<\/p>\n<p>clock_t\u00a0 startTime;\/\/ \u5553\u52d5\u6642\u9418<\/p>\n<p>long\u00a0 clockTicks;\/\/ \u6642\u9418\u4fe1\u865f<\/p>\n<p>float Frames;\/\/ \u6bcf\u79d2\u6e32\u67d3\u5e40\u6578<\/p>\n<p>int n;\/\/ \u5e40\u8a08<\/p>\n<p>}FPS,*FPS_PTR;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"575\">\u8a08\u7b97\u6bcf\u79d2\u6e32\u67d3\u5e40<\/td>\n<\/tr>\n<tr>\n<td width=\"575\">float Get_FPS(FPS_PTR fps){<\/p>\n<p>++fps-&gt;n;\/\/ \u5e40\u52a0\u58f9<\/p>\n<p>if (fps-&gt;n &gt; 100) {<\/p>\n<p>fps-&gt;Frames = Get_FPS(fps, fps-&gt;n);<\/p>\n<p>fps-&gt;n = 0;<\/p>\n<p>}<\/p>\n<p>return fps-&gt;Frames;<\/p>\n<p>}<\/td>\n<\/tr>\n<tr>\n<td width=\"575\">float Get_FPS(FPS_PTR fps, int\u00a0 Frames){<\/p>\n<p>clock_t \u00a0currentTime = clock();\/\/ \u9032\u7a0b\u6642\u9221<\/p>\n<p>double _fps = (double)Frames * (double)(currentTime &#8211; fps-&gt;startTime) \/ (float)fps-&gt;clockTicks ;<\/p>\n<p>fps-&gt;startTime = currentTime;\/\/ \u91cd\u7f6e\u6642\u9593<\/p>\n<p>return (float)_fps;<\/p>\n<p>}<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4fc2\u6e38\u6232\u6bcf\u300e\u6e32\u67d3\u300f1\u300e\u756b\u9762\u300f\u544c1\u300e\u5e40\u300fFrame, \u00a0\u5f71\u66f8\u6bcf\u79d224\u683c\u300e\u83f2\u6797\u300f24\u300e\u5e40\u300f, Android\u6bcf\u79d2\u81f3\u9ad8 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/android_studio_ndk_frames\/\" class=\"more-link\">\u7e7c\u7e8c\u95b1\u8b80 <span class=\"screen-reader-text\">Android Studio NDK-Frames\u5e40<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[2],"class_list":["post-10924","post","type-post","status-publish","format-standard","hentry","category-android","tag-android","entry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/10924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/comments?post=10924"}],"version-history":[{"count":1,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/10924\/revisions"}],"predecessor-version":[{"id":10926,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/10924\/revisions\/10926"}],"wp:attachment":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/media?parent=10924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/categories?post=10924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/tags?post=10924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}