1997年のポケモンショック以後、各局のテレビアニメでは番組冒頭で視聴者向けに「部屋を明るくして、テレビから離れて見るように」といった趣旨のテロップを流すようになったが、本作では第87話より登場人物が合唱して「♪テ、テ、テレビを見るときはぁ 部屋を明るくしてはなれて見てね!」という注意を促し、オープニングが「だまって俺についてこい」の時は20世紀フォックスのロゴをモチーフとした「注意ロゴ」の前で両津が視聴者に口頭で注意を促すというユニークな手法を取った（オープニング変更後は廃止）。監督の高松信司はこの手法をとった理由について「テロップが本編にあまりにも無配慮に流れるのが嫌だったため、アニメキャラクターによる勧告を制作した」としている。初代監督のやすみ哲夫は、初期の1クール分のみ担当した。『キテレツ大百科』の後番組だったこともあり、当初は低年齢層を狙ったギャグやオリジナル展開が多く、原作ファンから不満の声が挙がっていたが、やすみは元々短期の予定であり不評のために降板したわけではない。やすみは『こち亀』以前の作品では『つるピカハゲ丸くん』や『おぼっちゃまくん』などを手掛けており、幼児・小学生向け作品を得意としていた。人気が安定してきたのはかつて『勇者シリーズ』の一部作品（マイトガイン、ジェイデッカー、ゴルドラン）や『機動新世紀ガンダムX』などのサンライズ作品で監督を手掛けた実績がある高松信司に交代した頃であり、原作よりも大げさなアクションシーンやギャグなどが大いに受けた。高松は『こち亀』での功績がジャンプ編集部に多大に評価され、『銀魂』のアニメ化の際に監督に指名されている。当初はセル画で制作されていたが、第134話よりデジタルでの制作となった。セル画での制作中にも、一度だけデジタルで制作されたことがある（第113話）。また、第137話、TVSP8弾はセル画で制作・放送された。作画もシリーズが進むに連れ変化しており、セル画時代、特に1996年から1997年の間は作画の変化が激しかった。デジタル制作化以降はほぼ変化はなくなった。1996年放送分はアイキャッチがなく、本編の最後に警察を意識して「本日の被害」と題して、その回の中で両津が壊した物品の一覧を紹介するコーナー（例外で麗子が壊した車5台、本田が壊した車8台＋病院を紹介した時がある）があったが、1997年1月以降はアイキャッチが作られたため「本日の被害」は時間の都合上廃止された。アイキャッチは当初、原作の扉絵を意識した各キャラと車のツーショットのようなものであった。デジタル化された後は放送当時の出来事を反映したもの（例：サッカーワールドカップ日韓大会など）や、その回に関係のあるアイテム（一万円札、テディベア、雛人形、レモンなど）に両津の繋がり眉毛をつけた物のアップが映されていた。特にレモンは擬宝珠檸檬が主役を務める回には必ずと言っていいほど使用された。また、夏季は両津の顔のデザインの花火、冬季は両津の雪像のアイキャッチが流れていた（この際、タイトルがタイトルロゴではなく黒い明朝体で「こちら葛飾区亀有公園前派出所」と表記される）。アニメのサブタイトルの画像は1996年は敬礼している両津一人の画像。1997年は自転車に乗っている両津とそれを追いかける中川、麗子、大原、本田、犬の画像。1998年から2000年中期までは青色の画面で両津の顔のアップの画像。デジタル化以降はたくさんの両津の顔の浮き彫りに加工が施された画像。終盤はその回の画像がパズルのようにバラバラになっており、それでピースが組み合わさって完成するような形になった（話によって例外もある）。一時的に1998年の第86話から第90話まではその話に関係ある物、主に背景が画像になっていた。また、次回予告は第100話までEDの前であったが、第101話以降はED後に流された。第234話Bパートの「住人と色」では原作者の秋本治が「禾火本三台」名義で絵コンテを担当している。
/* 非同期I/Oによるファイル出力の例 */#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#include <aio.h>#include <sys/mman.h>#define DATA_BUF_SIZE 4096#define DATA_BUF_NUM 128int main(void){    int fd;    int n, status;    unsigned char *Aio_buff[DATA_BUF_NUM];    struct aiocb Aiocb[DATA_BUF_NUM];    struct aiocb *List[DATA_BUF_NUM];    if ((fd = open("datafile", (O_CREAT | O_WRONLY), 0666)) < 0)    {        exit(1);    }    /* リンクリストの作成 */    for (n = 0; n < DATA_BUF_NUM; n++)    {        Aio_buff[n] = (unsigned char*)memalign(sysconf(_SC_PAGESIZE), DATA_BUF_SIZE);        memset((void *)(Aio_buff[n]), n, DATA_BUF_SIZE); /* データはページ単位にnで埋めている */        Aiocb[n].aio_buf = Aio_buff[n];        Aiocb[n].aio_offset = (long long)(DATA_BUF_SIZE * n);        Aiocb[n].aio_nbytes = (long long)DATA_BUF_SIZE;        Aiocb[n].aio_fildes = fd;        Aiocb[n].aio_reqprio = 0;        Aiocb[n].aio_lio_opcode = LIO_WRITE;        Aiocb[n].aio_sigevent.sigev_notify = SIGEV_NONE;        List[n] = &Aiocb[n];    }    /* 非同期I/Oの発行 */    lio_listio(LIO_WAIT, (struct aiocb **)&List[0], DATA_BUF_NUM, &sig);    /******/    /* この間ファイル出力と並行して、別の処理を記述できる */    /******/    /* 非同期I/Oの終了待ち */    aio_suspend((const struct aiocb **)&List[0], DATA_BUF_NUM, &timeout);    /* エラーステータスの確認 */    for (n = 0; n < DATA_BUF_NUM; n++)    {        status = aio_error(&(Aiocb[n]));        if (status) printf("%d is error %d:%s\n", n, status, strerror(status));    }    /* 終了ステータスの確認 */    for (n = 0; n < DATA_BUF_NUM; n++)    {        status = aio_return(&(Aiocb[n]));        if (status != DATA_BUF_SIZE) printf("%d is write error\n", n);    }    close(fd);    return 0;}